我有一个包含3个节点的集群。 我有一个json文件,每行都是一个json字符串。 我需要根据json文件的每一行中的ID字段将数据划分为X块,以便在同一节点中计算具有相同ID的jsons行。
我该怎么做分区?
我正在使用SparkR,代码的结构如下所示:
getObj=function(x)
{
rec1= rjson:::fromJSON(x) ;
kv=list(rec1$id, rec1) ;
return(kv)
}
data= SparkR:::textFile(sc, "Path")
mapdata= SparkR:::map(data, getObj)
mapdataP=SparkR:::partitionBy(mapdata,100)
id的范围是1到100.我的目标是分成100个部分,因此每个部分都有一个ID。但是,上面的代码没有给出预期的答案。某些分区为空。例如,当我尝试获取第二个分区时,使用 result = SparkR ::: collectPartition(mapdataP,1L),返回Null。
这里有什么遗漏或错误吗?非常感谢!