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:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final CombineFnBase.GlobalCombineFn
<InputT, AccumT, ?> protected final org.apache.beam.runners.core.construction.SerializablePipelineOptions
protected final Map
<PCollectionView<?>, WindowingStrategy<?, ?>> protected final WindowingStrategy
<Object, W> -
Constructor Summary
ConstructorsConstructorDescriptionFlinkPartialReduceFunction
(CombineFnBase.GlobalCombineFn<InputT, AccumT, ?> combineFn, WindowingStrategy<Object, W> windowingStrategy, Map<PCollectionView<?>, WindowingStrategy<?, ?>> sideInputs, PipelineOptions pipelineOptions) FlinkPartialReduceFunction
(CombineFnBase.GlobalCombineFn<InputT, AccumT, ?> combineFn, WindowingStrategy<Object, W> windowingStrategy, Map<PCollectionView<?>, WindowingStrategy<?, ?>> sideInputs, PipelineOptions pipelineOptions, boolean groupedByWindow) -
Method Summary
Methods inherited from class org.apache.flink.api.common.functions.AbstractRichFunction
close, getIterationRuntimeContext, getRuntimeContext, setRuntimeContext
-
Field Details
-
combineFn
-
windowingStrategy
-
serializedOptions
protected final org.apache.beam.runners.core.construction.SerializablePipelineOptions serializedOptions -
sideInputs
-
-
Constructor Details
-
FlinkPartialReduceFunction
public FlinkPartialReduceFunction(CombineFnBase.GlobalCombineFn<InputT, AccumT, ?> combineFn, WindowingStrategy<Object, W> windowingStrategy, Map<PCollectionView<?>, WindowingStrategy<?, ?>> sideInputs, PipelineOptions pipelineOptions) -
FlinkPartialReduceFunction
public FlinkPartialReduceFunction(CombineFnBase.GlobalCombineFn<InputT, AccumT, ?> combineFn, WindowingStrategy<Object, W> windowingStrategy, Map<PCollectionView<?>, WindowingStrategy<?, ?>> sideInputs, PipelineOptions pipelineOptions, boolean groupedByWindow)
-
-
Method Details
-
open
public void open(org.apache.flink.configuration.Configuration parameters) - Specified by:
open
in interfaceorg.apache.flink.api.common.functions.RichFunction
- Overrides:
open
in classorg.apache.flink.api.common.functions.AbstractRichFunction
-
combine
public void combine(Iterable<WindowedValue<KV<K, InputT>>> elements, org.apache.flink.util.Collector<WindowedValue<KV<K, throws ExceptionAccumT>>> out)
-