【发布时间】:2016-10-22 14:13:44
【问题描述】:
我想从一个时间窗口的键控流中获得迄今为止看到的最大窗口的流(就元素数量而言最大)。
目前我有以下代码:
source
.keyBy(...)
.timeWindow(...)
.fold((DummyKey, 0)) { case ((_, current), key) => (key, current + 1) }
.keyBy(_ => ())
.maxBy(1)
fold 的结果是 (key, count) 元素的流 - 因此,我想从这个流中获取“具有最高计数的键”的更新流。
然后我键入一个常量(keyBy(_ => ()) - 因为这是一个全局操作),并使用 maxBy - 这几乎 有效:我得到了最高计数的流,但是每个元素都会发出当前的最高计数。
我认为我正在寻找的是某种带有先前值的过滤器,它只会在新值与先前值不同时发出元素。
目前在 Flink 中可以吗?
【问题讨论】:
标签: apache-flink flink-streaming