将字符串转换为pyspark中的时间戳

问题描述 投票:0回答:1

我正在尝试将日期格式 mmddyyHHmmss(是 pyspark 中的字符串数据类型)转换为 pyspark 中的时间戳。我尝试了下面的代码,但我得到了空值。

date_string="09082023123456"
date_format = "MMddyyyyMMddHHmmss"
df = df.withColumn("timestamp_column", 
to_timestamp(df["date_string"], date_format))
string pyspark timestamp
1个回答
0
投票

您的

date_format
中的格式看起来不正确。您不需要中间的
MMdd

spark.createDataFrame([('09082023123456',)], ['dt_str']). \
    withColumn('tm1', func.to_timestamp('dt_str', 'MMddyyyyMMddHHmmss')). \
    withColumn('tm2', func.to_timestamp('dt_str', 'MMddyyyyHHmmss')). \
    show(truncate=False)

# +--------------+----+-------------------+
# |dt_str        |tm1 |tm2                |
# +--------------+----+-------------------+
# |09082023123456|null|2023-09-08 12:34:56|
# +--------------+----+-------------------+

tm1
正在使用您的格式,
tm2
正在使用更正后的格式。

© www.soinside.com 2019 - 2024. All rights reserved.