Action算子: foreach foreachPartition,collect,reduce,aggregate算子解析

forerach(func) 在rdd的每一条数据上运行func

foreachPartition(func)算子 在rdd上的每一个分区上运行func

这一点可以在下图源码上很明显的看出来,foreachpartition上一般用来建立数据库连接操作,一个分区分配一个连接比一条数据分配一个连接消耗资源少。

这俩个算子的运算结果是在worker节点的work目录下的,也就是executor,也就是说想看到这个action算子的结果要去executor所在节点的日志去看,在driver端是看不到的

 

collect算子

以数组的形式返回数据集的所有元素,结果在driver端可以看到
可以看到results接收单个分区的数据,在使用concat来合并多个数组。

 

reduce(func)算子,结果在driver端可以看到

通过 func 函数聚集 RDD 中的所有元素.
可以看到主要有俩个函数
reducePartition

这个函数是聚合单个分区的 数据

mergeResult

这个函数的作用是把多个分区的数据聚合到一起。

 

aggregate算子

这个算子也起到聚合的作用,不过更灵活一点,可以设定初值,分区聚合函数,总体聚合函数。结果在driver端可以看到

posted @ 2021-12-15 20:37  习惯了蓝  阅读(182)  评论(0)    收藏  举报