spark map和mapPartitions的区别
spark map和mapPartitions的区别和使用场景 map和mapPartitions的主要区别: 1) map :一次处理一个元素的数据 2)mapPartitions:一次处理一批数据 mapPartitions的优缺点: 优点: 速度快 ,一次处理一批数据,即一次接收所有的partition数据,在map过程中需要频繁创建额外的对象(例如将rdd中的数据通过jdbc写入数据库,map需要为每个元素创建一个链接,而mapPartition为每个partition创建一个链接),则mapPartitions效率比map高的多。 缺点: 容易出现内存溢出 ,当接收的partition的数据量较大时,例如100万数据, 一次传入一个function以后,那么可能一下子内存不够,但是又没有办法去腾出内存空间来,可能就导致OOM(内存溢出);而map一般较少出现内存溢出。 mapPartitions()出现内存溢出时的解决方法: 将数据切成较多的partition: repartition(100).mapPartitions(xx) 设置较大的处理器内存 --executor-memory 8g 代码demo_1.py: 每个partition仅仅初始化一次 Personas对象 def spark_get_order_personal_res(): spark_conf