#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()
вместо того, чтобы пытаться объединить с.