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

使用PySpark将字符串列转为日期类型时返回空值的问题咨询

解决Spark中to_date转换日期后返回null的问题

你的问题出在日期格式不匹配:

  • Spark的to_date函数默认只识别yyyy-MM-dd格式的字符串(比如2022-01-23)
  • 而你的日期是dd/MM/yyyy格式(比如23/01/2022),格式不匹配就会返回null

另外注意:原代码里把show()的结果赋值给了dfwdate,但show()方法返回的是None,会导致后续无法使用这个DataFrame,要分开执行赋值和展示操作。

修改后的代码:

# 显式指定日期格式为dd/MM/yyyy
dfwdate = dfworkers2.withColumn("Disponibility", to_date("Disponibility", "dd/MM/yyyy"))
# 单独调用show()展示结果
dfwdate.show(truncate=False)

如果你的数据里存在多种日期格式,可以用coalesce尝试多种格式匹配:

from pyspark.sql.functions import coalesce, to_date

dfwdate = dfworkers2.withColumn(
    "Disponibility",
    coalesce(
        to_date("Disponibility", "dd/MM/yyyy"),
        to_date("Disponibility", "MM/dd/yyyy"),
        to_date("Disponibility", "yyyy-MM-dd")
    )
)
dfwdate.show(truncate=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:06:27