Hello,

I wondered if there is a particular reason for the window function to have 
explicitly the same input/output type?
public <R> SingleOutputStreamOperator<R> apply(R initialValue, FoldFunction<T, 
R> foldFunction, WindowFunction<R, R, K, W> function)
for example (the following does not work):
    DataStream<SensorAggregatedValue> aggregates = values
            .assignTimestampsAndWatermarks(new SensorTimestampsAndWatermarks())
            .keyBy("id")
            .timeWindow(Time.minutes(1))
            .apply(new SensorValueAccumulator(), new AccumulateSensorValues(), 
new AggregateSensorValues());
because in this case my accumulator object does not have any id or timestamp 
information - just count, sum, min, max etc. And finally in the window function 
I receive the key (sensorId) and time window (start/end) and can build an 
aggregated value with all information needed. But currently the apply function 
forces me to use one cluttered class with id, count, sum, …, where the 
id,start,end time are invalid during the fold function.

kind regards,
Stephan

Reply via email to