多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## (4)map与mapPartitions的区别   1、map是对rdd中的每一个元素进行操作;mapPartitions则是对rdd中的每个分区的迭代器进行操作   2、如果是普通的map,比如一个partition中有1万条数据。ok,那么你的function要执行和计算1万次。使用MapPartitions操作之后,一个task仅仅会执行一次function,function一次接收所有的partition数据。只要执行一次就可以了,性能比较高。SparkSql或DataFrame默认会对程序进行mapPartition的优化。   3、普通的map操作通常不会导致内存的OOM异常,因为可以将已经处理完的1千条数据从内存里面垃圾回收掉。 但是MapPartitions操作,对于大量数据来说,将一个partition的数据一次传入一个function以后,那么可能一下子内存不够,但是又没有办法去腾出内存空间来,可能就OOM,内存溢出。