Как создать новый столбец string, извлекающий целые числа из метки времени в Spark?

#python #apache-spark #pyspark #spark-dataframe #pyspark-sql

#python #apache-spark #pyspark #spark-dataframe #pyspark-sql

Вопрос:

У меня есть фрейм данных spark со столбцом метки времени, я хочу новый столбец, содержащий строки в формате «ГГГГ».

Я попытался с:

 df.withColumn('year_month',year(col("timestamp")).cast("string") month(col("timestamp")).cast("string"))
 

Но если моя временная метка равна 2016-10-12, она возвращает значение 2020 в виде ГГГГ.

Ответ №1:

Вы можете использовать date_format :

 from pyspark.sql.functions import date_format
df.withColumn('year_month', date_format('timestamp', 'yyyyMM'))
 

Комментарии:

1. Отлично, это работает. Есть идеи, почему столбцы, которые не были преобразованы в string перед объединением?

2. ваш код будет работать, если вы завернете его внутрь concat() вместо того, чтобы пытаться объединить с .