Action算子解析
forerach(func) 在rdd的每一条数据上运行func
foreachPartition(func)算子 在rdd上的每一个分区上运行func
这一点可以在下图源码上很明显的看出来,foreachpartition上一般用来建立数据库连接操作,一个分区分配一个连接比一条数据分配一个连接消耗资源少。
这俩个算子的运算结果是在worker节点的work目录下的,也就是executor
collect算子
以数组的形式返回数据集的所有元素 可以看到results接收单个分区的数据,在使用concat来合并多个数组。
reduce(func)算子
通过 func 函数聚集 RDD 中的所有元素. 可以看到主要有俩个函数reducePartition
这个函数是聚合单个分区的 数据
mergeResult
这个函数的作用是把多个分区的数据聚合到一起。
aggregate算子
这个算子也起到聚合的作用,不过更灵活一点,可以设定初值,分区聚合函数,总体聚合函数。