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

PySpark中如何将"Dec 25 2022 6:31AM"格式字符串转为Timestamp?

解决PySpark日期字符串转Timestamp返回null的问题

你的问题核心是日期格式字符串不匹配,你提供的日期格式是"Dec 25 2022 6:31AM",但之前的代码用了完全不对应的格式模板,导致转换失败返回null。

正确的转换代码

使用to_timestamp函数时,必须指定和目标字符串完全匹配的格式模板:

import pyspark.sql.functions as fn

# 注意格式模板里的两个空格,以及hh(12小时制)、a(AM/PM标识)
df = df.withColumn('new_ts', fn.to_timestamp(fn.col('SendTime'), 'MMM dd yyyy  hh:mma'))

格式模板说明

  • MMM:匹配英文月份缩写(比如Dec、Jan)
  • dd:两位数字的日期
  • yyyy:四位数字的年份
  • 两个空格:对应原字符串中年份和时间之间的两个空格
  • hh:12小时制的小时数(因为原时间带AM/PM)
  • mm:两位数字的分钟
  • a:匹配AM/PM标识

额外注意事项

如果你的Spark集群默认时区和日期中的时区不一致,可能需要额外指定时区参数:

df = df.withColumn('new_ts', fn.to_timestamp(fn.col('SendTime'), 'MMM dd yyyy  hh:mma', 'UTC'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:15:36