我正在尝试将日期格式 mmddyyHHmmss(是 pyspark 中的字符串数据类型)转换为 pyspark 中的时间戳。我尝试了下面的代码,但我得到了空值。
date_string="09082023123456"
date_format = "MMddyyyyMMddHHmmss"
df = df.withColumn("timestamp_column",
to_timestamp(df["date_string"], date_format))
您的
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
正在使用更正后的格式。