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

Spark中na.fill无法为DateType字段填充日期值的问题排查

Spark中na.fill对DateType字段无效的原因
  • 核心问题是类型不匹配:Spark的na.fill方法在使用字典参数填充时,要求填充值的类型必须和目标列的Spark数据类型严格对应。你用date.now()生成的是Python的datetime.datetime对象,而Spark DateType列对应的Python类型是datetime.date对象,两者类型不匹配,导致Spark直接忽略了这个字段的填充操作,不会抛出错误。
  • 其他类型字段生效的原因:像DoubleType这类数值型字段,Python的int/float可以被Spark自动隐式转换为对应的Spark类型,所以填充操作能正常执行。
  • 解决办法:把填充值转换成date类型即可,比如用date.today(),或者对date.now()取date()部分:
    from datetime import date
    df.na.fill({"customer_from": date.today()})
    # 或者
    df.na.fill({"customer_from": date.now().date()})
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:53:10