Value类型-map()和mapPartitions()区别
1、map算子:原来RDD中的元素遍历,然后依次进入map算子中的f函数,这些元素形成新的RDD
2、mapPartitions算子:原来RDD中的元素,按照分区打包成Iterator迭代器,按批次依次进入mapPartitions算子中的f函数,在f函数内部需要手动写逻辑遍历Iterator中的元素并做操作后形成Iterator出来,最后形成新的RDD
3、map算子每次处理RDD中的一个元素,处理完一个元素便释放内存;mapPartitions算子每次处理RDD中一个分区的数据,处理完一个分区数据才释放内存,容易OOM
4、实际开发经验:当内存空间足够大时,使用mapPartitions算子可以提高执行效率