Spark学习笔记:DStream的transformation操作概览

DStream的transformation操作概览

一.Spark Streaming开发步骤

  • 创建输入DStream,如将Flume、Kafka、HDFS和Socket等作为数据源
  • 对输入DStream进行转换操作
  • 对转换后的DStream进行输出操作,比如存储到DBMS中

二.DStream分类

  • Input DStream,是最原始最初的DStream,它是依据不同的数据源创建的,也是RDD最初诞生的地方
  • Transformed DStream,是由其他DStream通过transformation算子转换而来的DStream
  • Output DStream,是由其他DStream通过Output算子生成,它只存在于Output算子内部,并不会像Transformed DStream一样由算子返回,它是触发Job执行的关键

三.常用Transformation算子

算子 描述
map(func) 源DStream的每个元素通过函数func返回一个新的DStream
flatMap(func) 类似于map操作,不同的是每个输入元素可以被映射出0或者更多的输出元素。
filter(func) 在源DStream上选择Func函数返回仅为true的元素,最终返回一个新的DStream。
repartition(numPartitions) 通过输入的参数numPartitions的值来改变DStream的分区大小。
union(otherStream) 返回一个包含源DStream不其他DStream的元素合并后的新DStream。
count() 对源DStream内部的所含有的RDD的元素数量进行计数,返回一个内部的RDD只包含一个元素的DStreaam。
reduce(func) 使用函数func(有两个参数并返回一个结果)将源DStream中每个RDD的元素进行聚合操作,返回一个内部所包含的RDD只有一个元素的新DStream。
countByValue() 计算DStream中每个RDD内的元素出现的频次并返回新的DStream[(K,Long)],其中K是RDD中元素的类型, Long是元素出现的频次。
reduceByKey(func, [numTasks]) 当一个类型为( K, V)键值对的DStream被调用的时候,返回类型为类型为( K, V)键值对的新DStream,其中每个键的值V都是使用聚合函数func汇总。注意:默认情况下,使用Spark的默认并行度提交任务(本地模式下并行度为2,集群模式下为8),可以通过配置numTasks设置丌同的并行任务数。
join(otherStream, [numTasks]) 当被调用类型分别为( K, V)和( K, W)键值对的2个DStream时,返回类型为( K,( V, W))键值对的一个新DStream。
cogroup(otherStream,
[numTasks])
当被调用的两个DStream分别含有(K, V) 和(K, W)键值对时,返回一个(K, Seq[V], Seq[W])类型的新的DStream。
transform(func) 通过对源DStream的每个RDD应用RDD-to-RDD函数返回一个新的DStream,这可以用来在DStream做任意RDD操作。
updateStateByKey(func) 返回一个新状态的DStream,其中每个键的状态是根据键的前一个状态和键的新值应用给定函数func后的更新。这个方法可以被用来维持每个键的任何状态数据。
window(func) 对滑动窗口的数据执行操作。


 

猜你喜欢

转载自blog.csdn.net/lrxcmwy2/article/details/82729317
今日推荐