更新時間:2021年12月27日11時41分 來源:傳智教育 瀏覽次數(shù):
DStream(Discretized Stream)是Spark Streaming提供的基本數(shù)據(jù)抽象。它表示一個連續(xù)的數(shù)據(jù)流,可以是從源接收到的輸入數(shù)據(jù)流,也可以是通過轉(zhuǎn)換輸入流生成的已處理數(shù)據(jù)流。
DStream由一系列連續(xù)的RDD表示,每個RDD都包含來自特定間隔的數(shù)據(jù),如下圖所示。SparkStreaming對流數(shù)據(jù)按照秒/分等時間間隔進(jìn)行微批劃分,每個微批就是一個RDD,這些個時間上連續(xù)的RDD就組成了
DStream
所以DStream本質(zhì)上就是一系列時間上連續(xù)的RDD即DStream=>Seq[RDD]
對DStream進(jìn)行操作(如:flatMap/map/filter..)就是對其底層的RDD進(jìn)行操作
對RDD操作會返回新的RDD,對DStream進(jìn)行操作也會返回新的DStream
上圖相關(guān)說明:
1、每一個橢圓形表示一個RDD
2、橢圓形中的每個圓形代表一個RDD中的一個Partition分區(qū)
3、每一列的多個RDD表示一個DStream(圖中有三列所以有三個DStream
4、每一行最后一個RDD則表示每一個Batch Size所產(chǎn)生的中間結(jié)果RDD
大多數(shù)Transformation和Action/Output和之前的RDD的一樣使用.少部分不一樣的通過案例講解