/ / jak przekonwertować zagnieżdżony plik json na csv w scala - json, scala, csv, apache-spark

jak przekonwertować zagnieżdżony plik json do csv w scala - json, scala, csv, apache-spark

Chcę przekonwertować mojego zagnieżdżonego jsona na csv, użyłem

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

Ale można go użyć do normalnego json, ale nie zagnieżdżonego. W każdym razie, że mogę przekonwertować mojego zagnieżdżonego jsona do csv? Pomoc zostanie doceniona, dzięki!

Odpowiedzi:

0 dla odpowiedzi № 1

Czytać json plik w iskrze i utwórz dataframe.

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

Zapisz ramkę danych za pomocą spark-csv

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

Źródło :

czytaj json

zapisz do csv


0 dla odpowiedzi nr 2

Gdy poprosisz Spark o konwersję struktury JSONCSV, Spark może zmapować tylko pierwszy poziom JSON. Dzieje się tak ze względu na prostotę plików CSV. To tylko przypisanie wartości do nazwy. Dlatego {"name1":"value1", "name2":"value2"...} może być reprezentowany jako CSV w tej strukturze: name1,name2, ... value1,value2,... W twoim przypadku konwertujesz JSON z kilkoma poziomami, więc wyjątek Spark mówi, że nie jest w stanie dowiedzieć się, jak przekonwertować tak złożoną strukturę na CSV.

Jeśli spróbujesz dodać tylko drugi poziom do JSON, zadziała, ale bądź ostrożny. Usunie nazwy drugiego poziomu, aby uwzględnić tylko wartości w tablicy.

Możesz rzucić okiem ten link aby zobaczyć przykład zestawów danych Json. Zawiera przykład.

Ponieważ nie mam żadnych informacji na temat charakteru danych, nie mogę powiedzieć więcej na ten temat. Ale jeśli musisz zapisać te informacje jako plik CSV, musisz uprościć strukturę swoich danych.