Я пытаюсь преобразовать это «17-MAR-15 09.11.39.395000 AM» в формат даты и времени.
Я пробовал ниже, но это не работает
df = df.withColumn("created_date", F.from_unixtime(F.unix_timestamp("created_date", 'dd-MMM-yy hh.mm.ss.SSSSSS a'), 'MM-dd-yyyy HH:mm:ss')) df = df.withColumn("created_date", F.unix_timestamp(F.col("created_date"), 'dd-MMM-yy hh.mm.ss.SSSSSS a').cast("timestamp"))
Спасибо за помощь.
Решение проблемы
Вы можете напрямую использовать to_timestamp с date_format как -dd-MMM-yy hh.mm.ss.SSSSSS a
Подготовка данных
s = StringIO("""
CREATED_DATE
17-MAR-15 09.11.39.395000 AM
""")
df = pd.read_csv(s,delimiter=',')
sparkDF = sql.createDataFrame(df)
sparkDF.show(truncate=False)
+----------------------------+
|CREATED_DATE |
+----------------------------+
|17-MAR-15 09.11.39.395000 AM|
+----------------------------+
В отметку времени
sparkDF = sparkDF.withColumn('CREATED_DATE_TIME',F.to_timestamp(F.col('CREATED_DATE'),'dd-MMM-yy hh.mm.ss.SSSSSS a'))
sparkDF.show(truncate=False)
+----------------------------+-----------------------+
|CREATED_DATE |CREATED_DATE_TIME |
+----------------------------+-----------------------+
|17-MAR-15 09.11.39.395000 AM|2015-03-17 09:11:39.395|
+----------------------------+-----------------------+
sparkDF.printSchema()
root
|-- CREATED_DATE: string (nullable = true)
|-- CREATED_DATE_TIME: timestamp (nullable = true)
Комментариев нет:
Отправить комментарий