教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

DStream是什么?怎樣對(duì)DStream進(jìn)行操作?

更新時(shí)間:2021年12月27日11時(shí)41分 來(lái)源:傳智教育 瀏覽次數(shù):

DStream的本質(zhì)

DStream(Discretized Stream)是Spark Streaming提供的基本數(shù)據(jù)抽象。它表示一個(gè)連續(xù)的數(shù)據(jù)流,可以是從源接收到的輸入數(shù)據(jù)流,也可以是通過(guò)轉(zhuǎn)換輸入流生成的已處理數(shù)據(jù)流。

DStream由一系列連續(xù)的RDD表示,每個(gè)RDD都包含來(lái)自特定間隔的數(shù)據(jù),如下圖所示。SparkStreaming對(duì)流數(shù)據(jù)按照秒/分等時(shí)間間隔進(jìn)行微批劃分,每個(gè)微批就是一個(gè)RDD,這些個(gè)時(shí)間上連續(xù)的RDD就組成了

DStream

所以DStream本質(zhì)上就是一系列時(shí)間上連續(xù)的RDD即DStream=>Seq[RDD]

對(duì)DStream進(jìn)行操作

對(duì)DStream進(jìn)行操作(如:flatMap/map/filter..)就是對(duì)其底層的RDD進(jìn)行操作

對(duì)RDD操作會(huì)返回新的RDD,對(duì)DStream進(jìn)行操作也會(huì)返回新的DStream

DStream具有容錯(cuò)性:

RDD之間存在依賴關(guān)系,DStream間也有依賴關(guān)系,RDD具有容錯(cuò)性,那么DStream也具有容錯(cuò)性

上圖相關(guān)說(shuō)明:

1、每一個(gè)橢圓形表示一個(gè)RDD

2、橢圓形中的每個(gè)圓形代表一個(gè)RDD中的一個(gè)Partition分區(qū)

3、每一列的多個(gè)RDD表示一個(gè)DStream(圖中有三列所以有三個(gè)DStream

4、每一行最后一個(gè)RDD則表示每一個(gè)Batch Size所產(chǎn)生的中間結(jié)果RDD

DStream的API

大多數(shù)Transformation和Action/Output和之前的RDD的一樣使用.少部分不一樣的通過(guò)案例講解

DStream Operations

Transformation
大多數(shù)和RDD中的類似,但有一些特殊的針對(duì)特定類型應(yīng)用使用的函數(shù),比如updateStateByKey狀態(tài)函數(shù)、window窗口函數(shù)等,后續(xù)具體結(jié)合案例講解。
http://spark.apache.org/docs/latest/streaming-programming-guide.html#transformations-on-dstreams

Output函數(shù)

Output Operations:將DStream中每批次RDD處理結(jié)果resultRDD輸出
http://spark.apache.org/docs/latest/streaming-programming-guide.html#output-operations-on-dstreams



猜你喜歡:

兩種RDD的依賴關(guān)系介紹

SparkStreaming連接Kafka兩種方式

Spark生態(tài)系統(tǒng)包含哪些組件?

Spark處理數(shù)據(jù)的速度比Hive更快?原因是什么?

傳智教育python+大數(shù)據(jù)開發(fā)培訓(xùn)

0 分享到:
和我們?cè)诰€交談!