У меня есть фрейм данных, который я пытаюсь записать в папку S3 в виде JSON.
df.printSchema
root
|-- userId: string (nullable = false)
|-- firstName: string (nullable = false)
|-- address: string (nullable = true)
|-- Email: array (nullable = true)
| |-- element: string (containsNull = true)
|-- UserFoodFavourites: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- foodName: string (nullable = true)
| | |-- isFavFood: boolean (nullable = false)
|-- UserGameFavourites: array (nullable = true)
| |-- element: array (containsNull = true)
| | |-- element: struct (containsNull = true)
| | | |-- Department: string (nullable = false)
| | | |-- gameName: string (nullable = false)
Запись кадра данных в JSON:
df.repartition(1).write.option("mode","append").json("s3Location")
Вывод в формате JSON я получаю:
{"userId":111,"firstName":"first123","address":"xyz",
"Email":["def@gmail.com","abc@gmail.com"],
"UserFoodFavourites":[{"foodName":"food1","isFavFood":true},{"foodName":"food2","isFavFood":false}],
"UserGameFavourites":[[{"Department":"Outdoor","gameName":"O1"}],[{"Department":"Indoor","gameName":"I1"},{"Department":"Indoor","gameName":"I2"}]]}
{"userId":123,"firstName":"first123","address":"xyz",
"Email":["def@gmail.com","abc@gmail.com"],
"UserFoodFavourites":[{"foodName":"food1","isFavFood":true},{"foodName":"food2","isFavFood":false}],
"UserGameFavourites":[[{"Department":"Outdoor","gameName":"O1"}],[{"Department":"Indoor","gameName":"I1"},{"Department":"Indoor","gameName":"I2"}]]}
alias prettyjson='python -m json.tool'
Однако, это не работает, когда я пытаюсь напечатать этот файл в симпатичном формате JSON, используя prettyJSON для этого файла, потому что они записаны как несколько объектов JSON на userId
.
Я пытаюсь записать это как один объект JSON с новым разделением строк, поэтому я могу запустить prettyJSON для этого файла.
Любая помощь приветствуется.