Преобразование недели года в дату в PySpark

У меня есть фреймворк PySpark со столбцом Week_of_the_year. «202005» означает 5-ю неделю 2020 года. Как я могу преобразовать его в формат «даты», возможно, преобразовать в середину (среду) этой недели?

Пример: я хочу, чтобы "202005" отображалось как "2020-01-29".


person borderline_coder    schedule 19.05.2020    source источник


Ответы (1)


Вы можете использовать функцию to_date в своей дате с 3(day of week: Wednesday) конкатенированным, например 2020053, где 2020 - год, 05 - неделя года, 3 - номер дня недели. Для получения информации см. простой формат даты Java. на дату и время.

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|
#+--------+----------+
person murtihash    schedule 19.05.2020