基于分区进行操作
场景
Spark提供了map操作,map操作是对每一个元素进行函数操作。但是如果需求中有分配操作(比如获取数据库链接)此时就没有必要为每一个元素进行重复的分配工作。此时可以使用mapPartitions(),mapPartitionsWithIndex(),foreachPartitions()操作每一个分区。
mapPartitions()
数据库链接池
有时需要创建一个对象来将不同类型的值聚合起来,比如求平均值:
mapPartitionsWithIndex()
对于mapPartitionsWithIndex与mapPartitions的区别是处理的函数中多一个index值表示数据所在的分区号。