一、Spark補充Transformation算子
1、join,leftOuterJoin,rightOuterJoin,fullOuterJoin
作用在K,V格式的RDD上。根據K進行連接,對(K,V)join(K,W)返回(K,(V,W))
- join后的分區數與父RDD分區數多的那一個相同。
2、union
合并兩個數據集。兩個數據集的類型要一致。
- 返回新的RDD的分區數是合并RDD分區數的總和。
3、intersection
取兩個數據集的交集,返回新的RDD與父RDD分區多的一致
4、substract
取兩個數據集的差集,結果RDD的分區數與substract前面的RDD的分區數一致。
5、mapPartitions
與map類似,遍歷的單位是每個partition上的數據。
6、distinct(map+reduceByKey+map)
7、cogroup
當調用類型(K,V)和(K,W)的數據上時,返回一個數據集(K,(Iterable<V>,Iterable<W>)),子RDD的分區與父RDD多的一致。
二、Spark補充Action算子
1、foreachPartition
遍歷的數據是每個partition的數據。
2、collectAsMap
對K,V格式的RDD數據回收轉換成Map<K,V>
3、takeSample(boolean,num,seed)
takeSample可以對RDD中的數據隨機獲取num個,第一個參數是有無放回,第二個參數是隨機獲取幾個元素,第三個參數如果固定,那么每次獲取的數據固定。
4、top(num)
對RDD中的所有元素進行由大到小排序,獲取前num個元素返回。
5、takeOrdered(num)
對RDD中的所有元素進行由小到大的排序,獲取前num個元素返回。