/ / як перетворити вкладений файл json в CSV в scala - json, scala, csv, apache-spark

Як конвертувати вставлений файл json в csv в scala - json, scala, csv, apache-spark

Я хочу перетворити свій вкладений json в CSV, який я використовував

df.write.format("com.databricks.spark.csv").option("header", "true").save("mydata.csv")

Але він може використовуватись для звичайного json, але не вкладеного json. У будь-якому разі, що я можу перетворити свій вкладений json в csv? Допомога буде оцінена, дякую!

Відповіді:

0 для відповіді № 1

Читайте json файл в іскри і створити dataframe.

val path = "examples/src/main/resources/people.json"
val people = sqlContext.read.json(path)

Збережіть фрейм даних за допомогою іскри-csv

people.write
.format("com.databricks.spark.csv")
.option("header", "true")
.save("newcars.csv")

Джерело:

читати json

зберегти в csv


0 для відповіді № 2

Коли ви запитаєте Spark для перетворення структури JSON вCSV, Spark може відображати лише перший рівень JSON. Це відбувається через простоту файлів CSV. Це просто присвоєння значення імені. Ось чому {"name1":"value1", "name2":"value2"...} може бути представлений у вигляді CSV з цією структурою: name1,name2, ... value1,value2,... У вашому випадку ви перетворюєте JSON з кількома рівнями, тому виняток Spark говорить про те, що він не може з'ясувати, як перетворити таку складну структуру в CSV.

Якщо ви спробуєте додати лише другий рівень до свого JSON, він спрацює, але будьте обережні. Це видалить імена другого рівня, включаючи лише значення в масив.

Ви можете подивитися на це це посилання щоб побачити приклад для наборів даних json Він включає приклад.

Оскільки у мене немає інформації про природу даних, я не можу сказати про них набагато більше. Але якщо вам потрібно записати інформацію як CSV, вам потрібно буде спростити структуру ваших даних.