我想我的嵌套JSON轉換成CSV,我用如何嵌套的JSON文件轉換成CSV斯卡拉
df.write.format("com.databricks.spark.csv").option("header", "true").save("mydata.csv")
但它可以使用正常的JSON但不是嵌套的JSON。無論如何,我可以將我的嵌套json轉換爲csv?help將不勝感激,謝謝!
我想我的嵌套JSON轉換成CSV,我用如何嵌套的JSON文件轉換成CSV斯卡拉
df.write.format("com.databricks.spark.csv").option("header", "true").save("mydata.csv")
但它可以使用正常的JSON但不是嵌套的JSON。無論如何,我可以將我的嵌套json轉換爲csv?help將不勝感激,謝謝!
閱讀json
火花文件並創建dataframe
。
val path = "examples/src/main/resources/people.json"
val people = sqlContext.read.json(path)
保存使用數據框spark-csv
people.write
.format("com.databricks.spark.csv")
.option("header", "true")
.save("newcars.csv")
來源:
當您要求Spark將JSON結構轉換爲CSV時,Spark只能映射JSON的第一層。 發生這種情況是因爲CSV文件的簡單性。這僅僅是一個名字的價值。這就是爲什麼{"name1":"value1", "name2":"value2"...}
可以用這種結構表示爲CSV: name1,name2, ... value1,value2,...
在你的情況,你正在轉換一個JSON幾個級別,所以Spark異常是說它無法弄清楚如何將這樣一個複雜的結構轉換成CSV 。
如果您嘗試向JSON添加第二級別,它將起作用,但要小心。它將刪除第二級的名稱以僅包含數組中的值。
你可以看看this link來查看json數據集的例子。它包括一個例子。
由於我沒有關於數據性質的信息,所以我不能多說這些。但是,如果您需要將信息編寫爲CSV,則需要簡化數據結構。
當您嘗試運行程序時,是否可以在日誌中看到「UnsupportedOperationException:CSV數據源不支持struct ...」? –
是的,我得到錯誤「CSV數據源不支持結構...」@CarlosVilchez – fin