天天看點

Spark綜合學習筆記(六)SparkStreaming資料抽象-DStream

學習緻謝:

​​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]

Spark綜合學習筆記(六)SparkStreaming資料抽象-DStream

對DStream進行操作

對DStream進行操作(如:flatMap/map/filter…)就是對其底層的RDD進行操作對RDD操作會傳回新的RDD,對DStream進行操作也會傳回新的DStream

Spark綜合學習筆記(六)SparkStreaming資料抽象-DStream

· DStream具的容錯性

RDD之間存在依賴關系,DStream間也有依賴關系RDD具有容錯性,那麼DStream也具有容錯性

Spark綜合學習筆記(六)SparkStreaming資料抽象-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​​

Spark綜合學習筆記(六)SparkStreaming資料抽象-DStream