累加器(Accumulator)是一種只能通過關聯操作進行“加”操作的變量,因此具有高效的并行計算能力。
1.首先,通過accumulator(v)方法創建Accumulator并初始化為0
val accum = sc.accumulator(0)2.然后,通過運算符+= 進行累加操作x => accum+=x
3.通過value方法讀取累加器的值accum.value3.完整代碼及結果
val accum = sc.accumulator(0)sc.parallelize(Array(1,2,3,4)).foreach(x => accum+=x) PRintln(accum.value) // 10
4.累加器小案例--統計文章中空白行個數
復制下載的spark源碼中的README.md中的幾行,如下圖所示:
在累加空行的時候,我們通過split函數將單詞切分開,然后輸出到指定的目錄中,可以查看輸出后的結果。
實現代碼鏈接如下:spark中用scala編寫累加器小程序統計文章中空白行
http://download.csdn.net/detail/rivercode/9771759
新聞熱點
疑難解答