2017-12-08 6 views
0

스파크 스트리밍 컨텍스트에서 키 - 값 쌍의 목록이 있습니다. 키 - 값 쌍 목록의 경우 키를 사용하여 reduce를 어떻게 집계 할 수 있습니까? 예 :Spark - 스칼라에서 키 - 값 쌍 목록 축소

[("key1",2),("key2",3)] 
[("key1",4),("key3",2)] 
[("key2",4),("key3",2)] 

예상 응집 출력 :

("key1", 6) 
("key2", 7) 
("key3", 4) 

답변

2

다음 reduceByKeyflatMap 먼저 평평 :

val rdd = sc.parallelize(Seq(Seq(("key1",2),("key2",3)), Seq(("key1",4),("key3",2)), Seq(("key2",4),("key3",2)))) 

rdd.flatMap(identity).reduceByKey(_+_).collect 
// res2: Array[(String, Int)] = Array((key1,6), (key2,7), (key3,4))