Spark的transformation算子
1)单Value
(1)map:一个一个数据的处理
(2)mapPartitions:一次性处理一个分区的数据
(3)mapPartitionsWithIndex:带分区号的打印
(4)flatMap:map+flat 扁平化拍平
(5)glom:分区转换成数组
(6)groupBy:聚合
(7)filter:过滤
(8)sample:取样 不放回伯努利 放回泊松
(9)distinct:去重
(10)coalesce:有两种模式走和不走shuffle,走就是repartition
(11)repartition:coalesce的简化版,改变分区
(12)sortBy:排序
(13)pipe:分区走脚本
2)双vlaue
(1)intersection:交集
(2)union:并集,不去重
(3)subtract:差集
(4)zip:比scala更严格的拉链
3)Key-Value
(1)partitionBy:选择分区器重新分区
(2)reduceByKey:预聚合,走shuffle,key值不变聚合value,不影响计算逻辑(sum)多使用reducebykey ,(avg)使用groupbykey
(3)groupByKey:key不变,按照value分组
(4)aggregateByKey:有初始值,填写分区内和分区间的计算逻辑
(5)foldByKey:有初始值,分区内和分区间的计算逻辑相同写一个
(6)combineByKey:最灵活,初始值可以改变数据的结构
(7)sortByKey:按照key值进行排序
(8)mapValues:只操作values的转换算子
(9)join:和sql的内连接一模一样
(10)cogroup:和sql中的full连接有点差异,cogroup会把values聚合在连接