Class FlinkPartialReduceFunction<K,InputT,AccumT,W extends BoundedWindow>

java.lang.Object
org.apache.flink.api.common.functions.AbstractRichFunction
org.apache.flink.api.common.functions.RichGroupCombineFunction<WindowedValue<KV<K,InputT>>,WindowedValue<KV<K,AccumT>>>
org.apache.beam.runners.flink.translation.functions.FlinkPartialReduceFunction<K,InputT,AccumT,W>
All Implemented Interfaces:
Serializable, org.apache.flink.api.common.functions.Function, org.apache.flink.api.common.functions.GroupCombineFunction<WindowedValue<KV<K,InputT>>,WindowedValue<KV<K,AccumT>>>, org.apache.flink.api.common.functions.RichFunction

public class FlinkPartialReduceFunction<K,InputT,AccumT,W extends BoundedWindow> extends org.apache.flink.api.common.functions.RichGroupCombineFunction<WindowedValue<KV<K,InputT>>,WindowedValue<KV<K,AccumT>>>
This is the first step for executing a Combine.PerKey on Flink. The second part is FlinkReduceFunction. This function performs a local combine step before shuffling while the latter does the final combination after a shuffle.

The input to combine(Iterable, Collector) are elements of the same key but for different windows. We have to ensure that we only combine elements of matching windows.

See Also: