2014-10-09 2 views
0

에서 튜플의 목록을 줄 : 나는 튜플의 각 두 번째 매개 변수 요약 될 수 있도록이 목록을 줄이기 위해 시도하고있어 val re = List((2,3), (3,5), (2,4))내가 튜플의 목록이 불꽃

합니다.

그래서 List((2,3), (3,5), (2,4))

이된다

List((2,7) , (3,5)) 

내가 스칼라 스파크 사례 연구 봤는데 : https://spark.apache.org/examples.html 등의 단어 수와 같은 :

val counts = file.flatMap(line => line.split(" ")) 
       .map(word => (word, 1)) 
       .reduceByKey(_ + _) 

을하지만을 나는 내 컬렉션에 비슷한하려고 할 때 오류가 발생했습니다.

scala> re.reduceByKey(_ + _) 
<console>:13: error: value reduceByKey is not a member of List[(Int, Int)] 
       re.reduceByKey(_ + _) 
       ^

튜플 목록에서 reduce 함수를 어떻게 사용할 수 있습니까?

답변

3

당신은 암시 적 범위에 SparkContext에서 PairRDDFunctions를 가져 오는 방법과 가져와야 : 지능이 키 사용과 지능이 값으로 사용 사이

import org.apache.spark.SparkContext._ 

def tuples: RDD[(Int, Int)] = ??? 

type Sum = Int 

val seqOp: (Sum, Int) => Sum = _ + _  
val combOp: (Sum, Sum) => Sum = _ + _ 

tuples.aggregateByKey(0)(seqOp, combOp) 

나는 명확한 구분을 위해 유형 '합계'를 추가

reduceByKey는 PairRDDFunctions를 사용할 수있는 경우에도 작동합니다.