I had a similar use case and ended writing the aggregation logic in the
apply function, could not find any better solution.

On Fri, Apr 1, 2016 at 6:03 AM, Kanak Biscuitwala <kana...@hotmail.com>
wrote:

> Hi,
>
> I would like to write something that does something like a word count, and
> then emits only the 10 highest counts for that window. Logically, I would
> want to do something like:
>
> stream.timeWindow(Time.of(1, TimeUnit.MINUTES), Time.of(5,
> TimeUnit.SECONDS)).sum(2).apply(getTopK(10))
>
> However, the window context is lost after I do the sum aggregation. Is
> there a straightforward way to express this logic in Flink 1.0? One way I
> can think of is to have a complex function in apply() that has state, but I
> would like to know if there is something a little cleaner than that.
>
> Thanks,
> Kanak

Reply via email to