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

Spark中to_date函数未指定格式时的默认匹配规则是什么?

PySpark中to_date()不指定格式时的日期匹配规则

当调用to_date(dateCol)不传入格式参数时,其行为完全等价于dateCol.cast("date"),遵循Spark内置的字符串转DateType转换规则,核心以ISO 8601标准格式为优先,同时兼容部分常见日期格式,具体支持的模式如下:

  • ISO 8601标准格式(优先匹配):
    • yyyy-MM-dd(例:2024-05-20)
    • yyyyMMdd(例:20240520)
    • 带时间部分的ISO字符串(自动忽略时间部分):yyyy-MM-dd'T'HH:mm:ss(例:2024-05-20T14:30:00)、yyyy-MM-dd'T'HH:mm:ss.SSS(例:2024-05-20T14:30:00.123)
  • 兼容的常见非标准格式(不同Spark版本可能略有差异):
    • MM/dd/yyyy(例:05/20/2024)
    • dd/MM/yyyy(例:20/05/2024,Spark会根据数值合理性自动区分MM/dd与dd/MM,如13/05/2024会被识别为dd/MM)
    • yyyy/MM/dd(例:2024/05/20)

注意事项

  • 若字符串不符合任何内置可识别的格式,转换结果会返回null
  • 内置规则会随Spark版本略有调整,若需要严格控制转换逻辑,建议始终显式指定格式参数,避免环境或版本差异导致的不一致

你找到的PySpark文档描述如下:

By default, it follows casting rules to pyspark.sql.types.DateType if the format is omitted. 
Equivalent to col.cast("date").

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:03:17