我有一个[String,String]类型的pairRDD。第一列代表键,第二列代表值。我需要聚合RDD,以便获得一个String-> List [String],以后可以将其收集起来。例如,我的形式为pairRDD:
A,a
B,b
A,c
A,d
B,e
C,c
D,f
C,b
我过去曾使用aggregateByKey来计数单词的实例,这意味着仅添加值。但是,我不知道如何从字符串中获取字符串列表。
应用了generateByKey之后,它应该类似于:
A,[a,c,d]
B,[b,e]
C,[c,b]
D,[f]
{顺序无所谓,键和/或值的顺序杂乱无所谓。}
我以后要收集pairRDD作为[String,List [String]]类型的映射。我需要地图进行重要的后处理步骤。
答案 0 :(得分:0)
最简单的方法是使用function Score(){
debugger;
$.ajax({
url: '@Url.Content("myurl")',
type: 'GET',
data: { sesson_id: '@ViewBag.Statement' },
cache: false,
async: false,
success: function (result) {
result.append(k);
}
});
}
和groupByKey
mapValues
给你val map = rdd.groupByKey().mapValues(_.toList).collectAsMap()
如果您仍要使用Map[String, List[String]]
,则
aggregateByKey
输出:
rdd.aggregateByKey(List[String]())(
(acc, x) => x :: acc,
(acc1, acc2) => acc1 ::: acc2
)