spark在解析JSON文件时显示空值
我在spark中读取了一个JSON文件 然而,当我试图读取info列或任何子元素时,模式会显示出来,它始终为空。(不为空)spark在解析JSON文件时显示空值,json,apache-spark,Json,Apache Spark,我在spark中读取了一个JSON文件 然而,当我试图读取info列或任何子元素时,模式会显示出来,它始终为空。(不为空) //读取文件 val df=spark.read.json(“文件路径”) df.printSchema() 根 |--数据_为:布尔值(nullable=true) |--学生:struct(nullable=true) ||--Id:string(nullable=true) ||--JoinDate:string(nullable=true) ||--LeaveDat
//读取文件
val df=spark.read.json(“文件路径”)
df.printSchema()
根
|--数据_为:布尔值(nullable=true)
|--学生:struct(nullable=true)
||--Id:string(nullable=true)
||--JoinDate:string(nullable=true)
||--LeaveDate:string(nullable=true)
|--信息:结构(nullable=true)
||--详细信息:数组(nullable=true)
|| |--元素:struct(containsnall=true)
|| | |--父亲工资:双倍(nullable=true)
|| | |--母亲工资:双倍(nullable=true)
|| | |--地址:字符串(nullable=true)
||--studentInfo:struct(nullable=true)
|| |--Age:double(nullable=true)
|| |--Name:String(nullable=true)
df.选择(“学生”).show()
显示Student元素中的字段值
即使当我解析Student.Id
时,我也可以得到Id
但是每当解析信息时,我总是得到一个在文件中不为NULL的NULL值
df.select("Info").show() // is showing as NULL
df.select("Info.detail").show() // is showing as NULL
甚至Info.Summary
也为空
有人能建议如何获取实际字段值而不是NULL吗
JSON文件
{“学生”:{“加入日期”:“20200909”,“离开日期”:“20200909”,“id”:“XA12”},“信息”:{“学生信息”:{“年龄”:13,“姓名”:“亚历克斯”},“详情”:[{“父亲工资”:1234.00,“母亲工资”:0,“地址”:“}”,数据是:真的}
发布您的sample@Lamanus,我添加了示例json文件。我试着按照您显示的方式读取日期,然后运行select,一切正常。你还有什么没给我们看的吗?除了上面的注释,在选择“Info.detail”时似乎还有一个输入错误,因为在JSON字符串中,键名实际上是“Info.details”。