在 PySpark 中将一年中的一周转换为日期

Convert Week of the Year to Date in PySpark

我有一个包含 'Week_of_the_year' 列的 PySpark 数据框。 '202005' 表示 2020 年的第 5 周。 如何将其转换为 'date' 格式,也许转换为该周的中日期(星期三)?

示例:我希望“202005”显示为“2020-01-29”。

您可以在日期上使用 to_date 函数 3(day of week: Wednesday) concatenated,如 2020053,其中 2020 是年份,05 是一年中的第几周,3 是星期几。有关日期时间字符的信息,请参阅 Java Simple Date format

from pyspark.sql import functions as F
df.withColumn("new_date", F.to_date(F.concat("old_date",F.lit("3")), "yyyywwu")).show()

#+--------+----------+
#|old_date|  new_date|
#+--------+----------+
#|  202005|2020-01-29|
#+--------+----------+