我有以下json:
{
"value":[
{"C1":"val1","C2":"val2"},
{"C1":"val1","C2":"val2"},
{"C1":"val1","C2":"val2"}
]
}
我试着这样读:
spark.read
.option("multiLine", true).option("mode", "PERMISSIVE")
.json("/Projects.json")
.show(10)
但是它不能在Dataframe中正确地显示我的记录,我如何绕过“值”嵌套来正确地在Dataframe中显示我的行?
当前结果:
我想要得到的结果是:
C1 | C2
-------------------
VAL1 | VAL2
VAL1 | VAL2
...etc
3条答案
按热度按时间syqv5f0l1#
查看Dataframe的模式(
jsonDf
)spark.read返回:您可以使用sql函数
explode
然后选择这两个元素C1
以及C2
如下图所示:这将导致所需的结果:
goucqfw62#
我终于用以下函数找到了解决问题的方法:
来源https://medium.com/@saikrishna_55717/flattening-嵌套-data-json-xml-using-apache-spark-75fa4c8ea2a7
ujv3wf0j3#
使用
inline
将完成以下工作: