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

PySpark中带毫秒与时区的字符串转Timestamp问题

解决Spark中带7位小数秒及时区的时间字符串转Timestamp问题

你的转换代码返回null的核心原因是格式字符串不匹配:时间字符串里的秒小数部分是7位(例如.6670097),但你使用的SSS仅对应3位毫秒,导致Spark无法解析,最终返回null。

正确的转换代码

调整格式字符串,用SSSSSSS匹配7位秒小数,同时保留Z匹配时区偏移:

df = df.withColumn('CreateDate', sf.to_timestamp('CreateDate', "yyyy-MM-dd HH:mm:ss.SSSSSSS Z"))

关键说明

  • SSSSSSS:对应时间字符串中7位的秒小数部分,确保格式完全匹配。
  • Z:匹配时区偏移(如-06:00),让Spark正确识别时间的时区信息。转换后的Timestamp在Spark内部以UTC存储,后续可通过会话时区设置或相关函数输出带时区的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:09:56