算子
算子分类
- Transformation算子:不触发提交作业,完成作业中间处理过程
- Value数据类型的Transformation算子
- 输入分区与输出分区一对一型
- 1 map
- 2 flatmap
- 3 mapPartitions
- 4 glom
- 输入分区与输出分区多对一型
- 5 union
- 6 cartesian
- 输入分区与输出分区多对多型
- 7 groupBy
- 输出分区为输入分区子集型
- 8 filter
- 9 distinct
- 10 subtract
- 11 sample
- 12 takeSample
- Cache型
- cache
- persist
- 输入分区与输出分区一对一型
- Key-Value数据类型的Transformation算子
- 输入分区与输出分区一对一
- mapValues
- 对单个RDD聚集
- combineByKey
- reduceByKey
- partitionBy
- 对两个RDD聚集
- Cogroup
- 连接
- join
- leftOutJoin和rightOutJoint
- 输入分区与输出分区一对一
- Value数据类型的Transformation算子
- Action行动算子:触发Spark的SparkContext提交job作业
- 无输出
- foreach
- HDFS
- saveAsTestFile
- saveAsObjectFile
- Scala集合和数据类型
- collect
- collectAsMap
- reduceByKeyLocally
- lookup
- count
- top
- reduce
- fold
- aggregate
- 无输出
1. cache
cache的功能是缓存.针对频繁使用的数据/数据处理,cache将数据缓存到内存中,便于下次读取.
cache不会马上执行缓存操作
2. checkpoint
checkpoint的功能是建立检查点,类似于快照.针对计算时间特别长的DAG计算流程,checkpoint可以将DAG中比较重要的中间数据做一个检查点,存储到一个高可用的地方,比如HDFS.
checkpoint不会马上执行建立检查点操作
checkpoint之前最好先cache一下