我有一个带有一组键和值列表的PairRDD,列表中的每个值都是一个json,我已经加载了我的spark应用程序的开头,如何迭代我的对RDD中列表的每个值将其转换为字符串,然后将密钥的全部内容保存到文件中?
我的输入文件如下:
{cat:'red',value:'asd'}
{cat:'green',value:'zxc'}
{cat:'red',value:'jkl'}
PairRDD看起来像
('red', [{cat:'red',value:'asd'},{cat:'red',value:'jkl'}])
('green', [{cat:'green',value:'zxc'}])
所以你可以看到我想将值列表中的每个json序列化为字符串,这样我就可以轻松地保存AsTextFile(),当然我正在尝试为每个键保存一个单独的文件
我来到这里的方式:
rawcatRdd = sc.textFile("hdfs://x.x.x.../unstructured/cat-0-500.txt")
import json
categoriesJson = rawcatRdd.map(lambda x: json.loads(x))
categories = categoriesJson
catByDate = categories.map(lambda x: (x['cat'], x)
catGroup = catByDate.groupByKey()
catGroupArr = catGroup.mapValues(lambda x : list(x))
理想情况下,我想创建一个如下所示的 cat-red.txt :
{cat:'red',value:'asd'}
{cat:'red',value:'jkl'}
和其他键相同。
I already looked at this answer但是在我将内容保存到文件之前,我稍微迷失了作为主机来处理列表中的每个值
提前致谢!