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

bor*_*der 3 datetime date week-number pyspark

我有一个带有“Week_of_the_year”列的 PySpark 数据框。“202005”表示 2020 年的第 5 周。我如何将其转换为“日期”格式,或者转换为该周的中间日期(星期三)?

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

mur*_*ash 6

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

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|
#+--------+----------+
Run Code Online (Sandbox Code Playgroud)