本文介绍如何使用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)