Я хочу реорганизовать следующий JSON, чтобы элементы массива в docs были под root.
Пример ввода
{
"response":{"docs":
[{
"column1":"dataA",
"column2":"dataB"
},
{
"column1":"dataC",
"column2":"dataD"
}]
}
}
Пример скрипта PySpark
from pyspark.sql import SQLContext
from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName("pyspark")
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
df = sqlContext.read.json("file:///.../input.json", multiLine=True)
new = df.select("response.docs")
new.printSchema()
new.write.mode("overwrite").format('json').save("file:///.../output.json")
Сценарий уже преобразует схему в следующий
root
|-- docs: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- column1: string (nullable = true)
| | |-- column2: string (nullable = true)
Однако, он должен выглядеть следующим образом: JSON
[
{"column1":"dataA","column2":"dataB"},
{"column1":"dataC","column2":"dataD"}
]
Как это можно сделать с помощью Spark?