在工作中我们会经常使用基于RDD中的算子进行应用的开发,开发过程中应用合适的算子对于整个作业的执行性能是有很大的影响的。请大家思考一下,关于Spark RDD核心算子,你都有哪些认识?
提示:
- 什么是宽依赖和窄依赖?依赖的划分原则是什么?
- reduceByKey和groupByKey的区别是什么,请从源码的角度阐述
- 以词频统计案例为例:不允许直接使用reduceByKey算子,请直接使用ShuffledRDD完成词频统计
- 不允许使用RDD提供的map和filter算子,自行开发实现和RDD中提供的map及filter一样的功能
- Spark的Job被触发后,请跟踪源码,分析底层到底干了什么事情