本文介绍如何使用Spark SQL流式处理中的滑动窗口函数。

什么是滑动窗口

滑动窗口(HOPPING),也被称作Sliding Window。不同于滚动窗口,滑动窗口的窗口可以重叠。

滑动窗口有windowDuration和slideDuration两个参数。windowDuration为窗口的大小,slideDuration为每次滑动的步长,两者关系如下:
  • slideDuration < windowDuration:则窗口会重叠,每个元素会被分配到多个窗口。
  • slideDuration = windowDuration:则等同于滚动窗口(TUMBLING)。

滑动窗口函数语法

GROUP BY HOPPING ( colName, windowDuration, slideDuration ) 

示例

SELECT avg(inv_quantity_on_hand) qoh
FROM kafka_inventory
GROUP BY HOPPING (inv_data_time, interval 1 minute, interval 30 second)