一,Transformation变换/转换算子:
这种变换并不触发提交作业,这种算子是延迟执行的,也就是说从一个RDD转换生成另一个RDD的转换操作不是马上执行,需要等到有Action操作的时候才会真正触发。
1.Value数据类型的Transformation算子
这种变换并不触发提交作业,针对处理的数据项是Value型的数据
(1)输入分区与输出分区一对一型:
1.map算子
2.flatMap算子
3.mapPartitions算子
4.mapPartitionsWithIndex算子
(2)输入分区与输出分区多对一型
5.union算子
6.cartesian算子
(3)输入分区与输出分区多对多型
7.groupBy算子
groupByKey算子
(4)输出分区是输入分区子集类型
8.filter算子
9.distinct算子
10.subtract算子
11.sample算子
(5)Cache算子
13.cache算子
14.persist算子
2.Key-Value 数据类型的Transformation算子
这种变换并不触发提交作业,针对处理的数据项是Key-Value型的数据对
(1)输入分区与输出分区一对一
15.mapValues算子
flatMapValues
(2)对单个RDD或者两个RDD聚集
单个RDD聚集
16.combineByKey算子
17.reduceByKey算子
18.repartition算子
两个RDD聚集
19.cogroup算子
(3)连接
20.join算子
21.leftOutJoin和rightOutJoin算子、fullOuterJoin算子
intersection算子
二,.Action行动算子:
这类算子会触发SparkContext提交job作业,并将数据输出到Spark系统。
(1)无输出
22.foreach算子
(2)HDFS
23.saveAsTextFile算子
24.saveAsObjectFile算子
(3)Scala集合和数据类型
25.collect算子
26.collectAsMap算子
27.count,countByKey,CountByValue算子
28.take
takeSapmle(withReplacement,num,seed)
29.reduce算子
30.aggregateByKey算子
31.zipWithIndex算子