aggregateByKey


def seq(a:Int, b:Int) : Int ={
 math.max(a,b)
}

def comb(a:Int, b:Int) : Int ={
 a + b
}

val data = sc.parallelize(List((1,3),(1,2),(1, 4),(2,3)))

data.aggregateByKey(3,4)(seq, comb).collect

輸出結果是:

Array((1,10), (2,3))

參數"3"代表做比較的初始值,參數"4"代表並行化分區的數量。

參數seq代表與初始化值比較的函數。  參數comb是進行合並的方法。

 

將這個測試程序拿文字做一下描述就是:在data數據集中,按key將value進行分組合並,合並時在seq函數與指定的初始值3進行比較,保留大的值;然后在comb中來處理合並的方式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM