spark中的转换算子和行动算子(transformations and actions)

首先,我们看一眼官方文档对算子的描述

 算子(RDD Operations):

        对于初学者来说,算子的概念比较抽象,算子可以直译为 "RDD的操作", 我们把它理解为RDD的方法即可 。

 转换算子(transformations):

        转换算子会从一个已经存在的数据集(RDD)中生成一个新的数据集(RDD),比如map就是一个转换算子,它通过映射关系从一个RDD生成了一个新的RDD。

 行动算子(actions):

        行动算子在进行数据集计算后会给driver程序返回一个值。

 

转换算子和行动算子最大的区别:

       转换算子返回一个数据集而行动算子返回一个具体值,如reduce算子是行动算子 而 reducebykey是转换算子;

        同时由于spark的惰性求值特性,所有的转换算子是不会立即计算结果的,转换算子只记录它应用的数据集,在行动算子需要给drive返回数据时转换算子才会去计算结果。(这个设计能让spark运行效率更高)

posted @ 2022-03-07 14:45  NeverLanded  阅读(416)  评论(0)    收藏  举报