2017-07-26 150 views
0

我从datafrme柱获得weeknumber从本月pyspark,对于实例是stuckup考虑我的数据帧作为pyspark越来越weeknumber

WeekID,DateField,WeekNUM 
1,01/JAN/2017 
2,15/Feb/2017 

我的输出应该如下

WeekIDm,DateField,MOF 
1,01/JAN/2017,1 
2,15/FEB/2017,2 

我尝试使用striftime和其他日期功能,我无法做到。

请帮我解决这个问题。

回答

1

您可以结合to_datedate_format

from pyspark.sql.functions import to_date, date_format 

df = spark.createDataFrame(
    [(1, "01/JAN/2017"), (2, "15/FEB/2017")], ("id", "date")) 

df.withColumn("week", date_format(to_date("date", "dd/MMM/yyyy"), "W")).show() 
+---+-----------+----+ 
| id|  date|week| 
+---+-----------+----+ 
| 1|01/JAN/2017| 1| 
| 2|15/FEB/2017| 3| 
+---+-----------+----+ 

如果你想一周的年请w替换格式:

date_format(to_date("date", "dd/MMM/yyyy"), "w")