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

PySpark字符串转Timestamp失败求助:转换结果全为Null

解决PySpark日期字符串转Timestamp全为Null的问题

你的代码核心问题是用了lit('mydate')——这是把字符串字面量'mydate'当成要转换的值,而不是引用DataFrame中名为mydate的字段,自然无法匹配格式,返回全Null。

正确的转换代码

先确保导入必要函数:

from pyspark.sql.functions import to_timestamp, col

然后用以下两种方式之一即可:

# 方式1:用col()引用字段
wt.select(to_timestamp(col('mydate'), "dd/MMM/yyyy:HH:mm:ss")).show()

# 方式2:直接传入字段名字符串(Spark会自动识别为字段)
wt.select(to_timestamp('mydate', "dd/MMM/yyyy:HH:mm:ss")).show()

额外注意事项

如果你的日期字符串里的月份是英文缩写(比如Jan、Feb),还要检查Spark的本地化设置是否匹配:

  • Spark 3.x及以上版本,可以直接在to_timestamp中指定locale:
    wt.select(to_timestamp(col('mydate'), "dd/MMM/yyyy:HH:mm:ss", "en_US")).show()
    
  • 也可以全局设置会话的时区和locale:
    spark.conf.set("spark.sql.session.timeZone", "UTC")
    spark.conf.set("spark.sql.locale", "en_US")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:42:35