简介
DStream中的transform操作允许运行任何 RDD-to-RDD 函数。它能够被用来应用任何没在 DStream API 中提供的 RDD 操作。它和DStream其他普通的Transformation类操作的区别是可以使用所有RDD上的操作算子。
而DStream中的output Operations类算子,如foreachRDD,会触发action操作生成具体的任务。
理解上的误区
transform vs Transformation
DStream上的操作也分为两大类:Transformation和Output Operations。其中transformation操作和RDD的transformation操作类似,是将DStream 输入的数据转换为另一个DStream,转换操作也是懒执行的,不会触发生成job任务。Output Operations操作是将DStream 的数据推到如数据库、文件系统等外部系统中去,从而触发生成实际的job任务。
transform是DStream的一种Transformation操作,其他DStream操作大都底层实际也是调用的transform。
transform中有RDD的action操作
transform是DStream的一种Transformation操作(实际在DStream子类的compute方法中执行),transform转换函数里是不能有关于rdd的action操作或者输出操作,有也不会执行,只能使用普通转换算子。输出操作只能在DStream的Output Operations类