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中來處理合並的方式。