Pyspark-将字符串转换为时间戳-获取空

时间:2019-05-05 14:43:49

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

我在数据帧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)?

谢谢!

1 个答案:

答案 0 :(得分:0)

24小时格式的格式为HHhh表示上午/下午。 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无关紧要