Конвертировать строковый столбец в дату в pyspark - PullRequest
1 голос
/ 30 апреля 2020

У меня есть фрейм данных, в котором столбец даты / времени имеет строковый тип данных и выглядит примерно как "Tue Apr 21 01:16:19 2020". Как мне преобразовать это в столбец даты с форматом 2020/04/21 в pyspark. Я пробовал что-то вроде этого,

option1:

df = df.withColumn("event_time2",from_unixtime(unix_timestamp(col("Event_time"), 'MM/dd/yyy')))

option2:

df= df.withColumn("event_time2",unix_timestamp(col("Event_time"),'yyyy-MM-dd HH:mm:ss').cast("timestamp"))

, но оба возвращают null

1 Ответ

1 голос
/ 30 апреля 2020

Вы можете использовать to_date и date_format. EEE для day in the week. См. Java Простой формат данных для получения полного списка

from pyspark.sql import functions as F
df.withColumn("Event_time2", F.to_date("Event_time", 'EEE MMM dd HH:mm:ss yyyy')).show(truncate=False)

#+------------------------+-----------+
#|Event_time              |Event_time2|
#+------------------------+-----------+
#|Tue Apr 21 01:16:19 2020|2020-04-21 |
#+------------------------+-----------+


df.withColumn("Event_time2", F.date_format(F.to_date("Event_time", 'EEE MMM dd HH:mm:ss yyyy'),'yyyy/MM/dd')).show(truncate=False)

#+------------------------+-----------+
#|Event_time              |Event_time2|
#+------------------------+-----------+
#|Tue Apr 21 01:16:19 2020|2020/04/21 |
#+------------------------+-----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...