我使用apply函数来获取唯一计数。但我希望在唯一数据的数量发生变化时收集计数。
代码:
hashMap
.keyBy(x => x.hash)
.timeWindow(Time.minutes(15))
.apply(new DataWindow())
但是当时间窗结束时触发应用功能,如何在没有滑动窗口的情况下更频繁地获取值。
答案 0 :(得分:0)
我建议使用ProcessFunction
而不是窗口。您将需要使用密钥分区state来保存您决定用于跟踪唯一值的任何数据结构。您可以使用事件时间计时器或处理时间计时器每15分钟清除一次状态,具体取决于您的应用程序适合的时间类型。
但是如果你想坚持使用窗口,你可以实现自定义Trigger
。在这种情况下,您需要将状态保留在TriggerContext上的partitioned state中。另请参阅more info about windows and triggers。