一、Spark函数分类
- Transformation转换操作:返回一个新的RDD
- 所有Transformation函数都是Lazy,不会立即执行,需要函数触发
- Action动作操作:返回值不是RDD(无返回值或返回其他的)
- 所有Action函数立即执行(Eager),比如count、first、collect、take等
二、Transformation函数
在Spark中Transformation操作表示将一个RDD通过一系列操作变为另一个RDD的过程,这个操作可能是简单的加减操作,也可能是某个函数或某一系列函数。值得注意的是Transformation操作并不会触发真正的计算,只会建立RDD间的关系图
三、Action函数
不同于Transformation操作,Action操作代表一次计算的结束,不再产生新的RDD,将结果返回到Driver程序或者输出到外部。所以Transformation操作只是建立计算关系,而Action操作才是实际的执行者。每个Action操作都会调用SparkContext的runJob方法向集群正式提交请求,所以每个Action操作对应一个Job