我想我的嵌套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