【问题标题】:Convert string column to date in pyspark在pyspark中将字符串列转换为日期
【发布时间】:2020-08-15 00:34:19
【问题描述】:

我有一个数据框,其中日期/时间列是字符串数据类型,类似于"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

【问题讨论】:

    标签: python pyspark


    【解决方案1】:

    您可以使用 to_datedate_formatEEE 代表 day in the week。完整列表请参考Java Simple Data Format

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

    【讨论】:

      猜你喜欢
      • 2023-01-10
      • 2020-07-25
      • 1970-01-01
      • 2016-10-31
      • 2019-10-27
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 2020-08-10
      相关资源
      最近更新 更多