I want to use ProcessWindowFunction.Context#globalState in my window function. 
But I don't want to apply ProcessWindowFunction directly to my WindowedStream 
because I don't want to buffer all the elements of each window. Currently I'm 
using WindowedStream#aggregate(AggregateFunction, ProcessWindowFunction).

My understanding is that RichFunction.runtimeContext also give access to those 
global states. That thought naturally pointed me to RichAggregateFunction, 
RichReduceFunction and RichFoldFunction. However, they all cause runtime error 
like this:
"AggregateFunction can not be a RichFunction. Please use 
fold(AggregateFunction, WindowFunction) instead."

So how can I use an incrementally aggregating window function and have access 
to global states at the same time?

Reply via email to