Leer JSON multilínea en Apache Spark

Estaba tratando de usar un archivo JSON como una pequeña base de datos. Después de crear una tabla de plantilla en DataFrame, la consulté con SQL y obtuve una excepción. Aquí está mi código:

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() resultado:

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

Mi archivo JSON:

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

Exepción:

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

¿Cómo puedo arreglarlo?

UPD

_corrupt_record es

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

UPD2

Es extraño, pero cuando reescribo mi JSON para que esté en línea, todo funciona bien.

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

Entonces el problema está en unnewline.

UPD3

Encontré en documentos la siguiente oración:

Tenga en cuenta que el archivo que se ofrece como un archivo json no es un archivo JSON típico. Cada línea debe contener un objeto JSON válido independiente y autónomo. Como consecuencia, un archivo JSON multilínea regular fallará con mayor frecuencia.

No es conveniente mantener JSON en ese formato. ¿Hay alguna solución para deshacerse de la estructura multilínea de JSON o para convertirla en línea?

Respuestas a la pregunta(2)

Su respuesta a la pregunta