我想将嵌套的json转换为csv,我使用
df.write.format("com.databricks.spark.csv").option("header", "true").save("mydata.csv")
但它可以用于普通的json而不是嵌套的json。无论如何,我可以将我的嵌套json转换为csv?帮助将不胜感激,谢谢!
答案 0 :(得分:1)
当您要求Spark将JSON结构转换为CSV时,Spark只能映射JSON的第一级。
这是因为CSV文件的简单性。它只是将一个值赋予名称。这就是为什么{"name1":"value1", "name2":"value2"...}
可以用这种结构表示为CSV的原因:
name1,name2, ...
value1,value2,...
在您的情况下,您正在转换具有多个级别的JSON,因此Spark异常表示它无法弄清楚如何将这样复杂的结构转换为CSV。
如果您尝试仅向JSON添加第二级,它将起作用,但要小心。它将删除第二级的名称,仅包含数组中的值。
您可以查看this link以查看json数据集的示例。它包括一个例子。
由于我没有关于数据性质的信息,我无法对此进行更多说明。但是,如果您需要将信息写为CSV,则需要简化数据结构。
答案 1 :(得分:0)
在spark中阅读json
文件并创建dataframe
。
val path = "examples/src/main/resources/people.json"
val people = sqlContext.read.json(path)
保存数据框
people.write
.format("com.databricks.spark.csv")
.option("header", "true")
.save("newcars.csv")
来源: