Spark Streaming窗口函數

一.簡介

Spark Streaming還提供了窗口計算,可以在數據的滑動窗口上應用轉換。下圖說明了此滑動窗口。
在這裏插入圖片描述
如該圖所示,每當窗口滑動在源DStream,落入窗口內的源RDDS被組合及操作以產生RDDS的窗口DStream。在這種特定情況下,該操作將應用於數據的最後3個時間單位,並以2個時間單位滑動。這表明任何窗口操作都需要指定兩個參數。

  1. 窗口長度 - 窗口的持續時間。
  2. 滑動間隔 -進行窗口操作的間隔。

這兩個參數必須是源DStream的批處理間隔的倍數。

讓我們用一個例子來說明窗口操作。每10秒計算最近30秒數據,生成一次字數統計。爲此,我們必須在最近30秒數據上使用reduceByKey來對pairsDStream (word, 1)對應用該操作。這是通過操作完成的reduceByKeyAndWindow。

// Reduce last 30 seconds of data, every 10 seconds
// windowLength和slideInterval
val windowedWordCounts = pairs.reduceByKeyAndWindow((a:Int,b:Int) => (a + b), Seconds(30), Seconds(10))

二.常用窗口算子

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章