【问题标题】:Pyspark -Convert String to TimeStamp - Getting NullsPyspark - 将字符串转换为时间戳 - 获取空值
【发布时间】:2019-05-05 14:43:49
【问题描述】:

我在数据框 df 上有以下列作为字符串:

date|
+----------------+
|4/23/2019 23:59|
|05/06/2019 23:59|
|4/16/2019 19:00

我正在尝试将其转换为时间戳,但我只得到 NULL 值。

我的声明是:

from pyspark.sql.functions import col, unix_timestamp
df.withColumn('date',unix_timestamp(df['date'], "MM/dd/yyyy hh:mm").cast("timestamp"))

为什么我只得到 Null 值?是不是因为月份格式(因为我在 05 上添加了一个额外的 0)?

谢谢!

【问题讨论】:

    标签: python pyspark apache-spark-sql unix-timestamp


    【解决方案1】:

    24 小时格式的模式是HH,hh 是上午/下午。 https://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html

    df \
        .withColumn('converted_date', psf.to_timestamp('date', format='MM/dd/yyyy HH:mm')) \
        .show()
            +----------------+-------------------+
            |            date|     converted_date|
            +----------------+-------------------+
            | 4/23/2019 23:59|2019-04-23 23:59:00|
            |05/06/2019 23:59|2019-05-06 23:59:00|
            | 4/16/2019 19:00|2019-04-16 19:00:00|
            +----------------+-------------------+
    

    有无前导0无所谓

    【讨论】:

    • 如果我想将其转换为 'dd-MMM-yyyy HH:mm:ss` 格式怎么办?我尝试过 date_format,但这会将列转换为字符串。
    猜你喜欢
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 2021-12-01
    • 1970-01-01
    相关资源
    最近更新 更多