相當於mapreduce自定義combine,可以提高任務的執行效率,畢竟在map端已經聚合過了
def combinebykeywithclasstag[c](
createcombiner: v => c, //map端,改變 v 的返回值型別
mergevalue: (c, v) => c, //map端,預聚合
mergecombiners: (c, c) => c, //reduce端,聚合
partitioner: partitioner, //分割槽物件
mapsidecombine: boolean = true, //是否開啟map端聚合,預設開啟
serializer: serializer = null)
//使用的這種
def combinebykeywithclasstag[c](
createcombiner: v => c,
mergevalue: (c, v) => c,
mergecombiners: (c, c) => c)
def combinebykeywithclasstag[c](
createcombiner: v => c,
mergevalue: (c, v) => c,
mergecombiners: (c, c) => c,
numpartitions: int)
rdda.combinebykeywithclasstag(
line => mutable.set(line), //宣告map的返回值型別
(c1: mutable.set[string], newline) => c1 += newline, //map端預聚合
(c1: mutable.set[string], c2: mutable.set[string]) => c1 ++= c2 //reduce端,聚合
)
從combinebykeywithclasstag方法定義來看 spark運算元 五 action運算元
collect package com.doit.spark.demoday05 import org.apache.spark.sparkcontext author 向陽木 date 2020 09 22 22 19 description 將資料以陣列形式收集回driver端,資料按照分割槽編...
Spark運算元詳解
目錄 spark常用運算元詳解 3.getnumpartitions 4.partitions 5.foreachpartition 6.coalesce 7.repartition 8.union,zip,join 9.zipwithindex,zipwithuniqueid 未完待續.本文主要介...
spark運算元分類
transformation運算元 不觸發提交作業,完成作業中間處理過程 value資料型別的transformation運算元 輸入分割槽與輸出分割槽一對一型 輸入分割槽與輸出分割槽多對一型 輸入分割槽與輸出分割槽多對多型 輸出分割槽為輸入分割槽子集型 cache型 key value資料型別的t...