Spark - Scala:当 json 数据分布在多行时,读取 json 文件作为数据帧不起作用?

Posted

技术标签:

【中文标题】Spark - Scala:当 json 数据分布在多行时,读取 json 文件作为数据帧不起作用?【英文标题】:Spark - Scala : Read json file as dataframe doesn't work when json data is spread across multiple lines? 【发布时间】:2016-03-15 13:06:02 【问题描述】:

Json 数据:

 "blogID" : "FJY26J1333", "date" : "2012-04-01",
"name" : "vpxnksu", "comment" : "good stuff" 
"blogID" : "VSAUMDFGSD", "date" : "2012-04-12", "name" : "yhftrcx", "comment" : "another comment"

代码:

val dataFrame=sqlContext.read.json("sample.json")
dataFrame.show()

输出:

_corrupt_record       blogID      comment          date        name
 "blogID" : "FJY...  null        null             null        null
"name" : "vpxnksu...  null        null             null        null
 null                 VSAUMDFGSD  another comment  2012-04-12  yhftrcx

我怎样才能把它读成两条记录?

【问题讨论】:

【参考方案1】:

确保源文件中的每一行都有一个 json 对象,如下所示:

 "blogID" : "FJY26J1333", "date" : "2012-04-01", "name" : "vpxnksu", "comment" : "good stuff" 
 "blogID" : "VSAUMDFGSD", "date" : "2012-04-12", "name" : "yhftrcx", "comment" : "another comment"  

【讨论】:

除了你刚刚移动了问题,你还没有解决它。您可能想要使用 spark 将 PB 的多行 json 文本文件处理为您建议的文件格式,所以您又要问如何使用 spark 读取多行 json 文件。

以上是关于Spark - Scala:当 json 数据分布在多行时,读取 json 文件作为数据帧不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spark-Scala 解析 JSON 数据

如何使用 Apache Spark 和 Scala 创建嵌套 json

如何使用 Spark scala 从字符串格式的复杂 JSON 创建数据帧

Scala和Spark的大数据分析

我如何将平面数据框转换为 spark(scala 或 java)中的嵌套 json

Spark编程--文件数据读写