私はネストされた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")
ソース:
回答№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として情報を記述する必要がある場合は、データの構造を単純化する必要があります。