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

Spark SQL如何将CSV读取的MMddHHmm格式日期转为指定时分格式

问题原因

你出现时分信息丢失的核心原因是使用了to_date()函数解析时间字符串:to_date()只会保留日期(月、日)维度的数据,会自动丢弃时分部分,所以后续格式化时会默认用00:00填充,才会输出02-19 12:00 AM的错误结果。

解决方案

将to_date()替换为to_timestamp()解析完整的时间字符串即可,如果你需要输出小写的am/pm,可以再嵌套一层lower()函数匹配你的预期格式。

修正后的完整查询代码

spark.sql("""
SELECT 
    lower(date_format(to_timestamp(date, 'MMddHHmm'), 'MM-dd hh:mm a')) as date, 
    delay, 
    origin, 
    destination 
FROM us_delay_flights_tbl 
WHERE delay > 120 AND ORIGIN = 'SFO' AND DESTINATION = 'ORD' 
ORDER by delay DESC
""").show(10, truncate=False)

效果验证

  • 输入字符串02190925,转换后输出:02-19 09:25 am
  • 输入字符串01031755,转换后输出:01-03 05:55 pm
    完全符合你给出的预期输出示例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:27:04