【发布时间】:2015-08-25 19:25:43
【问题描述】:
我有一个 RDD[(String, List[String])] 类型的 RDD。
例子:
(FRUIT, List(Apple,Banana,Mango))
(VEGETABLE, List(Potato,Tomato))
我想将上面的输出转换为如下的 json 对象。
{
"categories": [
{
"name": "FRUIT",
"nodes": [
{
"name": "Apple",
"isInTopList": false
},
{
"name": "Banana",
"isInTopList": false
},
{
"name": "Mango",
"isInTopList": false
}
]
},
{
"name": "VEGETABLE",
"nodes": [
{
"name": "POTATO",
"isInTopList": false
},
{
"name": "TOMATO",
"isInTopList": false
},
]
}
]
}
请建议最好的方法。
注意:"isInTopList": false 始终保持不变,并且必须与 jsonobject 中的每个项目一起存在。
【问题讨论】:
-
使用任何图书馆,例如 Play、Lift 或 Jakson
-
如果输入中没有换行等风险,使用简单的字符串替换创建输出可能会更快。如果您无法对输入做出假设,请使用库。
-
在本地运行时,你可以创建任何你想要的东西,但是当你在实际集群中运行时,对所需位置的写入操作只能通过Spark函数进行,并且Spark不允许直接保存到JSON
标签: json scala apache-spark