/ /ネストされたjsonファイルをscalaでcsvに変換する方法-json、scala、csv、apache-spark

入れ子になったjsonファイルをscala - css、csv、apache-sparkのcsvに変換する方法

私はネストされたjsonをcsvに変換したい

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

ただし、通常のjsonには使用できますが、ネストされたjsonには使用できません。とにかく、ネストされたjsonをcsvに変換できますか?

回答:

回答№1は0

読む json sparkにファイルして作成 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に保存


回答№2の場合は0

SparkにJSON構造をCSVの場合、SparkはJSONの最初のレベルのみをマッピングできます。 これは、CSVファイルが単純なために発生します。値に名前を割り当てるだけです。それが理由です {"name1":"value1", "name2":"value2"...} 次の構造を持つCSVとして表すことができます。 name1,name2, ... value1,value2,... あなたの場合、あなたはいくつかのレベルでJSONを変換しているので、Sparkの例外はそのような複雑な構造をCSVに変換する方法を理解できないと言っています。

JSONに第2レベルのみを追加しようとしても機能しますが、注意してください。 2番目のレベルの名前を削除して、配列の値のみを含めます。

あなたは見ることができます このリンク JSONデータセットの例をご覧ください。例が含まれています。

データの性質に関する情報がないため、これ以上詳しくは言えません。ただし、CSVとして情報を記述する必要がある場合は、データの構造を単純化する必要があります。