学习致谢:
https://www.bilibili.com/video/BV1Xz4y1m7cv?p=40
DStream是什么
DStream的本质
DStream(Discretized Stream)是Spark Streaming提供的基本数据抽象。它表示一个连续的数据流,可以是从源接收到的输入数据流,也可以是通过转换输入流生成的已处理数据流。
DStream由一系列连续的RDD表示,每个RDD都包含来自特定间隔的数据,如下图所示。SparkStreaming对流数据按照秒/分等时间间隔进行微批划分,每个微批就是一个RDD,这些个时间上连续的RDD就组成了DStream
所以DStream本质上就是一系列时间上连续的RDD,即DStream => Seq[RDD]
对DStream进行操作
对DStream进行操作(如:flatMap/map/filter…)就是对其底层的RDD进行操作对RDD操作会返回新的RDD,对DStream进行操作也会返回新的DStream
· DStream具的容错性
RDD之间存在依赖关系,DStream间也有依赖关系RDD具有容错性,那么DStream也具有容错性
上图相关说明:
1、每一个椭圆形表示一个RDD
2、椭圆形中的每个圆形代表一个RDD中的一个Partition分区
3、每一列的多个RDD表示一个DStream(图中有三列所以有三个DStream)4、每一行最后一个RDD则表示每一个Batch
Size所产生的中间结果RDD
DStream 的API
DStream Operations
Transformation
大多数和RDD中的类似,但有一些特殊的针对特定类型应用使用的函数,比如updateStateByKey状态函数、window窗口函数等,后续具体结合案例讲解。
http://spark.apache.org/docs/latest/streaming-programming-guide.html#transformations-on-dstreams
Action/OutPut函数