1. 程式人生 > >spark通過combineByKey算子實現條件性聚合的方法

spark通過combineByKey算子實現條件性聚合的方法

條件性聚合 spark combineByKey

實際開發過程中遇到了需要實現選擇性聚合的場景,即對於某一個key對應的數據,滿足條件的記錄進行聚合,不滿足條件的則不聚合。

使用spark處理這種計算場景時,想到了使用combineByKey算子,先將輸入數據中的value映射成含一個元素的ArrayBuffer(scala中相當於java中的ArrayList),然後在聚合時對滿足聚合條件的記錄聚合後覆蓋這一個ArrayBuffer,不滿足條件的待聚合的兩條記錄都填入ArrayBuffer。最後調用flatMap將ArrayBuffer中的元素分拆。

spark通過combineByKey算子實現條件性聚合的方法