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

PySpark中字符串日期转日期类型报错,寻求解决方案

解决PySpark日期字符串转日期类型的解析错误

你的代码报错是因为指定的格式字符串与实际日期格式不匹配,具体问题有两点:

  1. 原日期字符串中的日期是1位数字(如7),但你用了要求两位数字的dd格式符;
  2. 原字符串包含12:00AM的时间部分,格式字符串里未对应处理,导致解析到该部分时失败。

正确的转换代码

直接使用匹配完整格式的字符串即可完成转换,有两种写法:

方法1:先转时间戳再转日期

import pyspark.sql.functions as F

df = df.withColumn("date", F.to_date(F.to_timestamp(df.date, 'MMM d yyyy hh:mma')))

方法2:直接用to_date指定完整格式

import pyspark.sql.functions as F

df = df.withColumn("date", F.to_date(df.date, 'MMM d yyyy hh:mma'))

格式符说明

  • MMM:匹配英文月份缩写(如Apr)
  • d:匹配1-2位的日期(兼容7和17)
  • yyyy:匹配4位年份
  • hh:匹配12小时制的小时数
  • mm:匹配分钟数
  • a:匹配AM/PM标识

执行后,日期列会被正确转换为2022-04-07、2022-04-17这样的日期类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:45:30