Spark知识点

map 和 mapPartitions

2018-01-02  本文已影响0人  0_9f3a

map:
遍历算子,可以遍历RDD中每一个元素,遍历的单位是每条记录

mapPartitions
遍历算子,可以改变RDD格式,会提高RDD并行度,遍历单位是partition,也就是在遍历之前它会将一个partition的数据加载到内存中

那么问题来了用上面的两个算子遍历一个RDD谁的效率高?

mapPartitions算子效率高


mapPartitions算子占用内存多,如果一个partition的计算结果非常非常大,那么可能造成OOM,怎么解决?

repartition算子来增加RDD的分区数,那么每一个partition的计算结果就减少了很多。


mapPartitions应用场景
一般在将一个RDD的计算结果写入到数据库(mysql oracle redis)中时会使用这个算子,这个算子适合将数据插入到数据库

上一篇 下一篇

猜你喜欢

热点阅读