Python 在pyspark中将字符串列转换为日期

Python 在pyspark中将字符串列转换为日期,python,pyspark,Python,Pyspark,我有一个数据框,其中日期/时间列是字符串数据类型,看起来像“Tue Apr 21 01:16:19 2020”。如何将其转换为pyspark中格式为2020/04/21的日期列。 我试过这样的东西 备选案文1: df = df.withColumn("event_time2",from_unixtime(unix_timestamp(col("Event_time"), 'MM/dd/yyy'))) 备选案文2: df= df.withColumn("event_time2",unix_tim

我有一个数据框,其中日期/时间列是字符串数据类型,看起来像
“Tue Apr 21 01:16:19 2020”
。如何将其转换为pyspark中格式为
2020/04/21
的日期列。 我试过这样的东西

备选案文1:

df = df.withColumn("event_time2",from_unixtime(unix_timestamp(col("Event_time"), 'MM/dd/yyy')))
备选案文2:

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

但是两者都返回null,您可以使用
来指定日期
日期格式
EEE
是指一周中的
。有关完整列表,请参阅

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 |
#+------------------------+-----------+