You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark中mmddyyHHmmss格式字符串转时间戳返回null如何解决?

PySpark日期转时间戳返回null的解决方法

问题根源

你的代码里日期格式字符串完全写错了:输入的date_string是09082023123456(结构为月(2位)+日(2位)+年(4位)+时(2位)+分(2位)+秒(2位)),但你指定的格式是MMddyyyyMMddHHmmss,重复了MMddyyyy部分,和输入字符串的长度、结构完全不匹配,导致to_timestamp无法解析,返回全null。

正确代码示例

情况1:输入是4位年份(如09082023123456)

修正格式字符串为MMddyyyyHHmmss即可:

df = df.withColumn("timestamp_column", 
                   to_timestamp(df["date_string"], "MMddyyyyHHmmss"))

情况2:输入是2位年份(如090823123456,对应mmddyyHHmmss格式)

格式字符串改为MMddyyHHmmss:

df = df.withColumn("timestamp_column", 
                   to_timestamp(df["date_string"], "MMddyyHHmmss"))

验证小技巧

可以先单独测试格式匹配:

from pyspark.sql.functions import to_timestamp
spark.sql("select to_timestamp('09082023123456', 'MMddyyyyHHmmss') as ts").show()

如果返回正确的时间戳,说明格式没问题,再应用到DataFrame上。

内容的提问来源于stack exchange,提问作者user2104898

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:22:03