SparkStreaming算子

Transformation 含义
map(func) 通过函数func传递源DStream的每个元素,返回一个新的DStream
flatMap(func) 类似于map,但是每个输入项可以映射到0或多个输出项。
filter(func) 通过只选择func返回true的源DStream的记录来返回一个新的DStream。
repartition(numPartitions) 重分区,通过创建或多或少的分区来更改此DStream中的并行度级别。
union(otherStream) 返回一个新的DStream,它包含源DStream和其他DStream中的元素的联合。
count() 通过计算源DStream的每个RDD中的元素数量,返回一个新的单元素RDD DStream。
reduce(func) 使用func函数(函数接受两个参数并返回一个参数)聚合源DStream的每个RDD中的元素,从而返回单元素RDDs的新DStream。这个函数应该是结合律和交换律的,这样才能并行计算。
countByValue() 当对K类型的元素的DStream调用时,返回一个新的(K, Long)对的DStream,其中每个键的值是它在源DStream的每个RDD中的频率。
reduceByKey(func, [numTasks]) 当对(K, V)对的DStream调用时,返回一个新的(K, V)对的DStream,其中每个键的值使用给定的reduce函数进行聚合。注意:默认情况下,这将使用Spark的默认并行任务数量(本地模式为2,在集群模式下,该数量由config属性Spark .default.parallelism决定)来进行分组。我们可以传递一个可选的numTasks参数来设置不同数量的任务。
join(otherStream, [numTasks]) 当调用两个(K, V)和(K, W)对的DStream时,返回一个新的(K, (V, W))对的DStream,其中包含每个Key的所有元素对。
cogroup(otherStream, [numTasks]) 当调用(K, V)和(K, W)对的DStream时,返回一个新的(K, Seq[V], Seq[W])元组DStream。
transform(func) 通过将RDD-to-RDD函数应用于源DStream的每个RDD,返回一个新的DStream。它可以用于应用DStream API中没有公开的任何RDD操作。例如将数据流中的每个批处理与另一个数据集连接的功能并不直接在DStream API中公开。但是你可以很容易地使用transform来实现这一点。这带来了非常强大的可能性。例如,可以通过将输入数据流与预先计算的垃圾信息(也可能是使用Spark生成的)结合起来进行实时数据清理
updateStateByKey(func) 返回一个新的“state”DStream,其中每个Key的状态通过将给定的函数应用于Key的前一个状态和Key的新值来更新。这可以用于维护每个Key的任意状态数据。要使用它,您需要执行两个步骤:(1).定义状态——状态可以是任意数据类型;(2).定义状态更新函数——用函数指定如何使用输入流中的前一个状态和新值更新状态。
发布了18 篇原创文章 · 获赞 2 · 访问量 377

猜你喜欢

转载自blog.csdn.net/CH_Axiaobai/article/details/104170264