pyflink.datastream.data_stream.WindowedStream.reduce#
- WindowedStream.reduce(reduce_function: Union[Callable, pyflink.datastream.functions.ReduceFunction], window_function: Optional[Union[pyflink.datastream.functions.WindowFunction, pyflink.datastream.functions.ProcessWindowFunction]] = None, output_type: Optional[pyflink.common.typeinfo.TypeInformation] = None) pyflink.datastream.data_stream.DataStream [source]#
Applies a reduce function to the window. The window function is called for each evaluation of the window for each key individually. The output of the reduce function is interpreted as a regular non-windowed stream.
This window will try and incrementally aggregate data as much as the window policies permit. For example, tumbling time windows can aggregate the data, meaning that only one element per key is stored. Sliding time windows will aggregate on the granularity of the slide interval, so a few elements are stored per key (one per slide interval). Custom windows may not be able to incrementally aggregate, or may need to store extra values in an aggregation tree.
Example:
>>> ds.key_by(lambda x: x[1]) \ ... .window(TumblingEventTimeWindows.of(Time.seconds(5))) \ ... .reduce(lambda a, b: a[0] + b[0], b[1])
- Parameters
reduce_function – The reduce function.
window_function – The window function.
output_type – Type information for the result type of the window function.
- Returns
The data stream that is the result of applying the reduce function to the window.
New in version 1.16.0.