从spark scala中的多个行文件中读取JSON文件

时间:2016-09-18 02:30:11

标签: json scala apache-spark bigdata

我在斯卡拉学习火花。我有一个JSON文件如下:

[
  {
    "name": "ali",
    "age": "13",
    "phone": "09123455737",
    "sex": "m"
  },{
    "name": "amir",
    "age": "24",
    "phone": "09123475737",
    "sex": "m"
  }
]

并且只有这个代码:

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val jsonFile = sqlContext.read.json("path-to-json-file")

我刚收到corrupted_row : String没有别的 但是当把每个人(或对象)放在一行时,代码工作正常

如何在spark中读取多行代码中的JSON sqlContext?

2 个答案:

答案 0 :(得分:5)

您必须自己将其读入RDD,然后将其转换为数据集:

spark.read.json(sparkContext.wholeTextFiles(...).values)          

答案 1 :(得分:0)

由于您有多行json行而引起此问题。尽管默认情况下spark.read.json期望一行位于一行,但这是可配置的:

您可以设置选项combined = [*a, *b, *c, *d]