pyspark 获取周数

Nav*_*nth 1 sql hadoop apache-spark pyspark

我坚持从 datafrme 列在 pyspark 中从月份中获取周数,例如,将我的数据框视为

WeekID,DateField,WeekNUM
1,01/JAN/2017
2,15/Feb/2017
Run Code Online (Sandbox Code Playgroud)

我的输出应该如下

WeekIDm,DateField,MOF
1,01/JAN/2017,1
2,15/FEB/2017,2
Run Code Online (Sandbox Code Playgroud)

我尝试了 striftime 和其他我无法做到的日期函数。

请帮助我解决问题。

hi-*_*zir 7

您可以组合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|
+---+-----------+----+
Run Code Online (Sandbox Code Playgroud)

如果您想要一年中的一周,请用以下格式替换格式w

date_format(to_date("date", "dd/MMM/yyyy"), "w")
Run Code Online (Sandbox Code Playgroud)