一、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个元素返回。