字符串对的RDD上的AggregateByKey获取字符串列表

时间:2019-07-19 06:18:23

标签: scala apache-spark

我有一个[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]]类型的映射。我需要地图进行重要的后处理步骤。

1 个答案:

答案 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
)