In spark version 2.2.0
onwards parsing array of json object is supported. Lower version of spark parsing array of json object is not supported or not parsing properly.
Please check below code.
scala> spark.version
res47: String = 2.2.0
scala> "cat /tmp/app.json".!
[{
"Name": "Onkar",
"Age": 24,
"Place": "Baramati",
"Number": 7709526425
}]
res48: Int = 0
scala> val jdf = spark.read.option("multiLine","true").json("/tmp/app.json")
jdf: org.apache.spark.sql.DataFrame = [Age: bigint, Name: string ... 2 more fields]
scala> jdf.printSchema
root
|-- Age: long (nullable = true)
|-- Name: string (nullable = true)
|-- Number: long (nullable = true)
|-- Place: string (nullable = true)
scala> jdf.show(false)
+---+-----+----------+--------+
|Age|Name |Number |Place |
+---+-----+----------+--------+
|24 |Onkar|7709526425|Baramati|
+---+-----+----------+--------+
spark version 2.1.1
has some issue as its not parsing array of json object & This issue has been fixed in newer versions.
scala> spark.version
res2: String = 2.1.1
scala> val jdf = spark.read.option("multiLine","true").json("/tmp/app.json")
jdf: org.apache.spark.sql.DataFrame = [_corrupt_record: string]
scala> jdf.printSchema
root
|-- _corrupt_record: string (nullable = true)