文档详情

Spark大数据分析 课件 6.2 DStream.pptx

发布:2025-02-19约4.17千字共10页下载文档
文本预览下载声明

DStream

01什么是DStream

02DStream转换操作

03DStream输出

04SparkStreaming窗口操作

什么是DStream

01

什么是DStream

SparkStreaming提供了一种高级的抽象,叫做DStream,英文全称为

DiscretizedStream,中文翻译为离散流,它代表了一个持续不断的数据流。

DStream可以通过输入数据源来创建,比如Kafka、Flume和Kinesis;也可以通过对其他DStream应用高阶函数来创建,比如map、reduce、join、window。

什么是DStream

DStream是spark中继SparkCore的RDD、SparkSQL的DataFrame和DataSet后又一基础的数据类型,是SparkStreaming特有的数据类型。DStream代表了一系列连续的RDD,DStream中每个RDD包含特定时间间隔的数据,存储方式为HashMapTime,RDD。

其中,Time为时间序列,而RDD我们都很熟悉,它是SparkCore的基础数据结构。

RDD@time1RDD@time2RDD@time3RDD@time4

DStream转换操作

ô

方法名称

描述

map(func)

通过将源DStream的每个元素传递给函数func来返回新的DStream。

flatMap(func)

与map相似,不同的是每个输入元素可以被映射出0或者更多的输出元素。

filter(func)

通过仅选择func返回true的源DStream的记录来返回新的DStream。

repartition(numPartitions)

通过创建更多或更少的分区来更改此DStream中的并行度。

union(otherStream)

返回一个新的DStream,其中包含源DStream和otherDStream中的元素的并集。

count()

通过计算源DStream的每个RDD中的元素数,返回一个新的单元素RDDDStream。

reduce(func)

通过使用函数func(带有两个参数并返回一个)来聚合源DStream的每个RDD中的元素,从而返回一个单元素RDD的新DStream。该函数应具有关联性和可交换性,以便可以并行计算。

countByValue()

在类型为K的元素的DStream上调用时,返回一个新的(K,Long)对的DStream,其中每个键的值是其在源DStream的每个RDD中的频率。

reduceByKey(func,[numTasks])

在(K,V)对的DStream上调用时,返回一个新的(K,V)对的DStream,其中使用给定的reduce函数聚合每个键的值。注意:默认

情况下,这使用Spark的默认并行任务数(本地模式为2,而在集群模式下,此数量由config属性确定spark.default,parallism)进行分组。您可以传递一个可选numTasks参数来设置不同数量的任务。

join(otherStream,[numTasks])

当在(K,V)和(K,W)对的两个DStream上调用时,返回一个新的(K,(V,W))对的DStream,其中每个键都有所有元素对

cogroup(otherStream,[numTasks])

在(K,V)和(K,W)对的DStream上调用时,返回一个新的(K,Seq[M,Seq[W])元组的DStream。

transform(func)

通过对源DStream的每个RDD应用RDD-to-RDD函数来返回新的DStream。这可用于在DStream上执行任意RDD操作。

updateStateByKey(func)

返回一个新的“状态”DStream,在该DStream中,通过在键的先前状态和键的新值上应用给定函数来更新每个键的状态。这可用于维护每个键的任意状态数据。

DStream转换操作

什么是DStream

1.transform(func)

在Spark-Streaming官方文档中提到,DStream的transform操作极大的丰富了DStream上能够进行的操作内容。使用transform操作后,除了可以使用DStream提供的一些转换方法之外,还能够直接调用任意的调用RDD上的操作函数。下面演示如何使用transform将一行语句切分成多个单词。

2.up

显示全部
相似文档