【问题标题】:Date format in Pyspark DataframePyspark Dataframe 中的日期格式
【发布时间】:2025-12-16 22:00:01
【问题描述】:

我的数据:

[Row(ID=2887628, Date_Time='11/01/2019 05:00:00 PM'),

我的代码:

from pyspark.sql import functions as F
df = df.withColumn('Date_Time',F.to_date(F.unix_timestamp('Date_Time', 'MM/dd/yyyy HH:mm:ss a').cast('timestamp')))

但是Date_Time的答案是错误的:

[Row(ID=2887628, Date_Time=None),

这里有什么问题?

【问题讨论】:

    标签: apache-spark datetime pyspark apache-spark-sql


    【解决方案1】:

    使用小写 h 而不是大写。请参阅docs 了解正确的日期时间模式用法。

    df2 = df.withColumn(
        'Date_Time',
        F.to_date(F.unix_timestamp('Date_Time', 'MM/dd/yyyy hh:mm:ss a').cast('timestamp'))
    )
    

    您的代码也可以简化。无需使用unix_timestamp

    df2 = df.withColumn(
        'Date_Time',
        F.to_date('Date_Time', 'MM/dd/yyyy hh:mm:ss a')
    )
    

    【讨论】:

    • 如何显示日期和时间而不仅仅是日期?
    • @LicunLiu 使用to_timestamp 而不是to_date