SparkStreaming DStream相關操作


DStream的相關操作:

DStream上的操作與RDD的類似,分為以下兩種:

  1. Transformations(轉換)
  2. Output Operations(輸出)/Action

 

1.1Transformations

●常見Transformation---無狀態轉換:每個批次的處理不依賴於之前批次的數據

Transformation

Meaning

map(func)

DStream中的各個元素進行func函數操作,然后返回一個新的DStream

flatMap(func)

map方法類似,只不過各個輸入項可以被輸出為零個或多個輸出項

filter(func)

過濾出所有函數func返回值為trueDStream元素並返回一個新的DStream

union(otherStream)

將源DStream和輸入參數為otherDStream的元素合並,並返回一個新的DStream.

reduceByKey(func, [numTasks])

利用func函數對源DStream中的key進行聚合操作,然后返回新的(KV)對構成的DStream

join(otherStream, [numTasks])

輸入為(K,V)(K,W)類型的DStream,返回一個新的(K(VW)類型的DStream

transform(func)

通過RDD-to-RDD函數作用於DStream中的各個RDD,可以是任意的RDD操作,從而返回一個新的RDD

 
●特殊的Transformations---有狀態轉換:當前批次的處理需要使用之前批次的數據或者中間結果。
有狀態轉換包括基於追蹤狀態變化的轉換(updateStateByKey)和滑動窗口的轉換
1.UpdateStateByKey(func)
2.Window Operations開窗函數

 

1.2. Output/Action

Output Operations可以將DStream的數據輸出到外部的數據庫或文件系統

當某個Output Operations被調用時,spark streaming程序才會開始真正的計算過程(RDDAction類似)

Output Operation

Meaning

print()

打印到控制台

saveAsTextFiles(prefix, [suffix])

保存流的內容為文本文件,文件名為"prefix-TIME_IN_MS[.suffix]".

saveAsObjectFiles(prefix,[suffix])

保存流的內容為SequenceFile,文件名為 "prefix-TIME_IN_MS[.suffix]".

saveAsHadoopFiles(prefix,[suffix])

保存流的內容為hadoop文件,文件名為"prefix-TIME_IN_MS[.suffix]".

foreachRDD(func)

Dstream里面的每個RDD執行func

1.3. 總結:

 

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM