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

PySpark:如何将带星期的日期字符串转换为yyyy-MM-dd格式?

Spark日期字符串转yyyy-MM-dd格式解决方案

问题根源

你用错了日期格式字符串:

  • 开头的周几缩写需要用EEE,而非DDD(DDD代表一年中的第几天)
  • 21:06是24小时制时间,对应格式符是HH,不是12小时制的hh
  • 第二个日期里Apr后的双空格无需额外处理,Spark日期解析器会自动忽略多余空格

正确代码实现

import pyspark.sql.functions as F

df = spark.createDataFrame(sc.parallelize([
            ['Wed Sep 30 21:06:00 1998'],
            ['Fri Apr  1 08:37:00 2022'],
            ]),
                           ['Date'])

# 转换为yyyy-MM-dd格式的日期类型
df.withColumn('Date', F.to_date(F.col('Date'), "EEE MMM dd HH:mm:ss yyyy")).show()

执行结果

+----------+
|      Date|
+----------+
|1998-09-30|
|2022-04-01|
+----------+

格式符说明

  • EEE:匹配英文周几缩写(如Wed、Fri)
  • MMM:匹配英文月份缩写(如Sep、Apr)
  • dd:匹配两位日期(含空格填充的单数字日期,如 1)
  • HH:匹配24小时制小时数(00-23)
  • yyyy:匹配四位年份

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:40:44