【发布时间】:2018-06-05 13:17:06
【问题描述】:
我想使用 spark 过程将 json 结构重新格式化为包含对象数组的结构。 我的输入文件包含以下行:
{ "keyvals" : [[1,"a"], [2, "b"]] },
{ "keyvals" : [[3,"c"], [4, "d"]] }
我希望我的进程输出
{ "keyvals": [{"id": 1, "value": "a"}, {"id": 2, "value": "c"}] },
{ "keyvals": [{"id": 3, "value": "c"}, {"id": 4, "value": "d"}] }
最好的方法是什么?
查看示例输入,您可以在 scala spark-shell 中运行:
var jsonStrings = Seq("""{"keyvals": [[1,"a"], [2, "b"]] }""", """{ "keyvals" : [[3,"c"], [4, "d"]] }""")
var inputRDD = sc.parallelize(jsonStrings)
var df = spark.sqlContext.read.json(inputRDD)
// reformat goes here ?
df.write.json("myfile.json")
谢谢
【问题讨论】:
-
你有什么尝试吗?
to_json也许?请生成minimal reproducible example。 -
to_json 如何转换 [[1,"a"], [2, "b"]] => [{"id": 1, "value": "a"}, {" id": 2, "value": "c"}] ?需要对数据结构进行转换。
标签: json scala apache-spark apache-spark-sql