Искам да конвертирате моя вложени 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")
Източник:
0 за отговор № 2
Когато помолите Spark да конвертира JSON структура вкато CSV, Spark може да картографира само първото ниво на JSON. Това се случва поради простотата на CSV файловете. Това е просто присвояване на стойност към име. Защото {"name1":"value1", "name2":"value2"...}
може да бъде представен като CSV с тази структура:
name1,name2, ...
value1,value2,...
Във вашия случай конвертирате JSON с няколко нива, така че изключението на Spark казва, че не може да разбере как да преобразува такава сложна структура в CSV.
Ако се опитате да добавите само второ ниво към вашия JSON, той ще работи, но бъдете внимателни. Тя ще премахне имената на второто ниво, за да включи само стойностите в масив.
Можете да погледнете тази връзка за да видите примера за json масиви от данни. Тя включва пример.
Тъй като нямам информация за естеството на данните, не мога да кажа много повече за него. Но ако трябва да напишете информацията като CSV, ще трябва да опростите структурата на данните си.