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

PySpark读取合法JSON文件生成DataFrame值全为Null的问题求助

Spark读取JSON生成DataFrame全为Null的常见原因
  • JSON格式不符合Spark默认解析要求
    Spark默认采用JSON Lines格式(每行一个独立的JSON对象),如果你的文件是数组包裹的JSON(如[{"key":1},{"key":2}])或格式化的多行单对象,Spark会将整个文件视为单条记录,字段无法匹配导致全Null。解决:添加multiLine参数,df = spark.read.option("multiLine", True).json(path)

  • 字段大小写不匹配
    Spark对字段名大小写敏感,若原始JSON的字段名(如"UserName")与推断的Schema字段名(如"username")大小写不一致,值无法映射会显示Null。检查字段名的大小写是否完全匹配。

  • 隐性数据类型不兼容
    虽然Spark识别出了Schema,但JSON实际数据类型与推断类型不兼容时,值会被置为Null。例如Schema推断某字段为IntegerType,但JSON中该字段是字符串值(如"100"而非100),或嵌套结构类型不匹配。可通过df.printSchema()对比原始JSON的实际数据类型。

  • 文件读取异常
    路径指向空文件/空目录,或文件权限不足,会导致Spark能推断Schema但读取不到有效数据。可直接查看文件内容确认(如Databricks用dbutils.fs.head(path))。

  • JSON格式损坏
    部分JSON对象包含未转义的特殊字符(如未转义的引号、换行符),导致解析失败,但Spark仍能从正常对象推断Schema,最终显示全Null。用JSON校验工具检查文件完整性。

  • 编码不匹配
    若JSON使用Spark默认不支持的编码(如GBK),解析时会失败导致值为Null。解决:指定编码参数,df = spark.read.option("encoding", "GBK").json(path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:25:21