視窗運算元,說白了就是每隔多長(s)時間,統計過去多長時間(w)內產生的資料。
spark streaming提供了滑動視窗操作的支援,從而讓我們可以對乙個滑動視窗內的資料執行計算操作。每次掉落在視窗內的rdd的資料,會被聚合起來執行計算操作,然後生成的rdd,會作為window dstream的乙個rdd。比如下圖中,就是對每三秒鐘的資料執行一次滑動視窗計算,這3秒內的3個rdd會被聚合起來進行處理,然後過了兩秒鐘,又會對最近三秒內的資料執行滑動視窗計算。所以每個滑動視窗操作,都必須指定兩個引數,視窗長度以及滑動間隔,而且這兩個引數值都必須是batch間隔的整數倍。
1、紅色的矩形就是乙個視窗,視窗hold的是一段時間內的資料流。
2、這裡面每乙個time都是時間單元,在官方的例子中,每隔window size是3 time unit, 而且每隔2個單位時間,視窗會slide一次。
所以基於視窗的操作,需要指定2個引數:
window length- the duration of the window (3 in the figure) 視窗大小,個人感覺是一段時間內資料的容器。
slide interval- the interval at which the window-based operation is performed (2 in the figure). 滑動間隔,就是我們可以理解的cron表示式吧。
滑動視窗的操作:
window 對每個滑動視窗的資料執行自定義的計算
countbywindow 對每個滑動視窗的資料執行count操作
reducebywindow 對每個滑動視窗的資料執行reduce操作
reducebykeyandwindow 對每個滑動視窗的資料執行reducebykey操作
countbyvalueandwindow 對每個滑動視窗的資料執行countbyvalue操作
?:
/** * window視窗函式操作
* batchinterval為2秒
* * 每隔4秒,統計過去6秒內產生的資料
*/object windowops
}
Spark Streaming簡介 有狀態運算元
spark streaming是微批次處理方式,批處理間隔是spark streaming是的核心概念和關鍵引數。spark streaming需要單獨乙個節點來接收資料,所以spark windowlength 視窗長度 視窗的持久時間 執行一次持續多少個時間單位 slideinterval 滑動...
Spark Streaming入門詳解
背景 使用spark主要是使用spark streaming,spark streaming的魔力之所在於 1.流式處理,如今是乙個流處理時代,一切與流不相關的都是無效的資料。3.spark streaming本身是乙個程式,spark streaming在處理資料的時候會不斷感知資料。所以對構建複...
Spark Streaming 程式監控
官網中指出,spark中專門為sparkstreaming程式的監控設定了額外的途徑,當使用streamingcontext時,在web ui中會出現乙個 streaming 的選項卡,在此選項卡內,統計的內容展示如下 這其中包括接受的記錄數量,每乙個batch內處理的記錄數,處理時間,以及總共消耗...