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

PySpark如何将无冒号时分秒的字符串列转换为datetime类型?

无分隔符时间字符串转Spark datetime的正确方法

你之前的报错核心是格式模式写错了,完全不需要给时间部分插冒号就能直接转换,只需要修正格式匹配符:

  • 原代码里的YYYYddmm是错误的:YYYY代表基于周的年份,和常规4位年份yyyy不同;ddmm是日在前、月在后,而你的日期字符串20221026是年-月-日的顺序,应该用yyyyMMdd
  • 时间部分的HHmmss是对的,因为220032是24小时制的时-分-秒,不需要分隔符

修正后的代码:

import pyspark.sql.functions as F

df_meta = df_meta.withColumn("filedatetime", F.to_timestamp(F.col("filedatetime_str"), "yyyyMMdd HHmmss"))

验证一下:字符串20221026 220032会被正确解析为2022-10-26 22:00:32的datetime类型。需要确保filedatetime_str列的所有字符串都严格遵循yyyyMMdd HHmmss格式,没有额外空格或字符,否则仍可能解析失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:30:46