- RDD编程模型中,一种有2种算子:transformations类算子和Actions类算子。
- Transformations算子:定义不同RDD形态之间的转换,计算流图(DAG,Directed Acyclic Graph);
- Actions:将计算结果收集起来或者物化到磁盘,以回溯的方式去触发执行这个计算流图DAG
- 开发者调用的各类 Transformations 算子,并不立即执行计算,当且仅当开发者调用 Actions 算子时,之前调用的转换算子才执行,称为“延迟计算”(Lazy Evaluation)。所以,Transformations算子执行很快,而Actions算子执行速度很慢。
- 官网上算子分类:https://spark.apache.org/docs/latest/rdd-programming-guide.html
- 3.1Trasformtion算子
- union、reduceByKey、groupBy、join、map、mapPartition
、cogroup、parallelize、textFile、leftoutJoin、flatMap、coalesce、Repartition
- 3.2 Action算子
- count、take、collect、foreach、foreachPartition、saveAsTextFile、ditinct、
first、reduce
- 3.3 shuffle算子
- reduceByKey、groupBy、join、coalesce、Repartition、leftoutJoin、cogroup
- 3.4 产生Stage划分的算子
- reduceByKey、groupBy、join、coalesce、Repartition、leftoutJoin、cogroup
- 3.5 触发Job算子
- count、take、collect、foreach、foreachPartition、saveAsTextFile、ditinct、
first、reduce
- RDD的4大属性
- partitions:数据分片
- partitioner:分片切割规则
- dependencies:RDD 依赖
- compute:转换函数