1、repartition類的操作:比如repartition、repartitionandsortwithinpartitions、coalesce等
2、bykey類的操作:比如reducebykey、groupbykey、sortbykey、countbykey、combinebykey、aggregatebykey、foldbykey等
3、join類的操作:比如join、cogroup等
重分割槽: 一般會shuffle,因為需要在整個集群中,對之前所有的分割槽的資料進行隨機,均勻的打亂,然後把資料放入下游新的指定數量的分區內
bykey類的操作:因為你要對乙個key,進行聚合操作,那麼肯定要保證集群中,所有節點上的,相同的key,一定是到同乙個節點上進行處理
join類的操作:兩個rdd進行join,就必須將相同join
key的資料,shuffle到同乙個節點上,然後進行相同key的兩個rdd資料的笛卡爾乘積
spark運算元:rdd鍵值轉換操作–groupbykey、reducebykey、reducebykeylocally
spark操作 aggregate、aggregatebykey 例項
spark運算元:rdd鍵值轉換操作–combinebykey、foldbykey
def coalesce(numpartitions: int, shuffle: boolean = false, partitioncoalescer: option[partitioncoalescer] = option.empty)
def repartition(numpartitions: int)(implicit ord: ordering[t] = null)
def intersection(other: rdd[t]): rdd[t]
def intersection(other: rdd[t], partitioner: partitioner)(implicit ord: ordering[t] = null): rdd[t]
def intersection(other: rdd[t], numpartitions: int): rdd[t]
def subtract(other: rdd[t], numpartitions: int): rdd[t]
def subtract(other: rdd[t], p: partitioner)(implicit ord: ordering[t] = null): rdd[t]
def subtractbykey[w: classtag](other: rdd[(k, w)]): rdd[(k, v)]
def subtractbykey[w: classtag](other: rdd[(k, w)], numpartitions: int): rdd[(k, v)]
def subtractbykey[w: classtag](other: rdd[(k, w)], p: partitioner): rdd[(k, v)]
def join[w](other: rdd[(k, w)], partitioner: partitioner): rdd[(k, (v, w))]
def join[w](other: rdd[(k, w)]): rdd[(k, (v, w))]
def join[w](other: rdd[(k, w)], numpartitions: int): rdd[(k, (v, w))]
def leftouterjoin[w](other: rdd[(k, w)]): rdd[(k, (v, option[w]))]
Spark的Shuffle過程介紹
spark的shuffle過程介紹 shuffle writer spark豐富了任務型別,有些任務之間資料流轉不需要通過shuffle,但是有些任務之間還是需要通過shuffle來傳遞資料,比如wide dependency的group by key。spark中需要shuffle輸出的map任務...
Spark的Shuffle過程介紹
spark豐富了任務型別,有些任務之間資料流轉不需要通過shuffle,但是有些任務之間還是需要通過shuffle來傳遞資料,比如wide dependency的group by key。spark中需要shuffle輸出的map任務會為每個reduce建立對應的bucket,map產生的結果會根據...
Spark 的 Shuffle過程介紹
spark豐富了任務型別,有些任務之間資料流轉不需要通過shuffle,但是有些任務之間還是需要通過shuffle來傳遞資料,比如wide dependency的group by key。spark中需要shuffle輸出的map任務會為每個reduce建立對應的bucket,map產生的結果會根據...