Mehrzeiliges JSON in Apache Spark lesen

Ich habe versucht, eine JSON-Datei als kleine Datenbank zu verwenden. Nachdem ich eine Vorlagentabelle auf DataFrame erstellt hatte, fragte ich sie mit SQL ab und bekam eine Ausnahme. Hier ist mein Code:

val df = sqlCtx.read.json("/path/to/user.json")
df.registerTempTable("user_tt")

val info = sqlCtx.sql("SELECT name FROM user_tt")
info.show()

df.printSchema() Ergebnis:

root
 |-- _corrupt_record: string (nullable = true)

Meine JSON-Datei:

{
  "id": 1,
  "name": "Morty",
  "age": 21
}

Ausnahme:

Exception in thread "main" org.apache.spark.sql.AnalysisException: cannot resolve 'name' given input columns: [_corrupt_record];

Wie kann ich es reparieren

UPD

_corrupt_record ist

+--------------------+
|     _corrupt_record|
+--------------------+
|                   {|
|            "id": 1,|
|    "name": "Morty",|
|           "age": 21|
|                   }|
+--------------------+

UPD2

Es ist komisch, aber wenn ich meinen JSON umschreibe, um ihn oneliner zu machen, funktioniert alles einwandfrei.

{"id": 1, "name": "Morty", "age": 21}

So ist das Problem in einemnewline.

UPD3

Ich habe in docs den nächsten Satz gefunden:

Beachten Sie, dass die als JSON-Datei angebotene Datei keine typische JSON-Datei ist. Jede Zeile muss ein separates, in sich geschlossenes gültiges JSON-Objekt enthalten. Infolgedessen schlägt eine reguläre mehrzeilige JSON-Datei häufig fehl.

Es ist nicht bequem, JSON in einem solchen Format zu belassen. Gibt es eine Problemumgehung, um die mehrzeilige Struktur von JSON zu entfernen oder sie in Oneliner umzuwandeln?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage