/ / Как да конвертирате вложените json файлове в csv в scala

как да конвертирате вложени json файл в CSV в скала - 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, ще трябва да опростите структурата на данните си.