本文为您介绍Spark Structured Streaming中的watermark语义,表示对指定时间列的最大延迟时间。

语法

WHERE delay(colName) < 'duration' 

等价于

withWatermark("colName", "duration")

示例

SELECT avg(inv_quantity_on_hand) qoh
FROM kafka_inventory
WHERE delay(inv_data_time) < '2 minutes'
GROUP BY TUMBLING (inv_data_time, interval 1 minute)
说明 以上通过新增内建函数的方式支持watermark语义,存在一定的限制性。另外一种方式是声明式,详细使用方式请参见SCAN语句

资料

详情请参见Spark Stream SQL 官方文档