Spark--基于分区进行操作

基于分区进行操作

场景

Spark提供了map操作,map操作是对每一个元素进行函数操作。但是如果需求中有分配操作(比如获取数据库链接)此时就没有必要为每一个元素进行重复的分配工作。此时可以使用mapPartitions(),mapPartitionsWithIndex(),foreachPartitions()操作每一个分区。

mapPartitions()

数据库链接池


Spark--基于分区进行操作_第1张图片
pic-1.png

有时需要创建一个对象来将不同类型的值聚合起来,比如求平均值:

Spark--基于分区进行操作_第2张图片
pic-2.png

mapPartitionsWithIndex()

对于mapPartitionsWithIndex与mapPartitions的区别是处理的函数中多一个index值表示数据所在的分区号。

你可能感兴趣的:(Spark--基于分区进行操作)