@Override public void reduce( Iterable<WindowedValue<KV<K, InputT>>> elements, Collector<WindowedValue<KV<K, OutputT>>> out) throws Exception { PipelineOptions options = serializedOptions.get(); FlinkSideInputReader sideInputReader = new FlinkSideInputReader(sideInputs, getRuntimeContext()); AbstractFlinkCombineRunner<K, InputT, AccumT, OutputT, W> reduceRunner; if (windowingStrategy.getWindowFn().windowCoder().equals(IntervalWindow.getCoder())) { reduceRunner = new SortingFlinkCombineRunner<>(); } else { reduceRunner = new HashingFlinkCombineRunner<>(); } reduceRunner.combine( new AbstractFlinkCombineRunner.CompleteFlinkCombiner<K, InputT, AccumT, OutputT>(combineFn), windowingStrategy, sideInputReader, options, elements, out); }
new FlinkMergingNonShuffleReduceFunction<>( combineFn, boundedStrategy, sideInputStrategies, context.getPipelineOptions());
new FlinkMergingNonShuffleReduceFunction<>( combineFn, boundedStrategy, sideInputStrategies, context.getPipelineOptions());
@Override public void reduce( Iterable<WindowedValue<KV<K, InputT>>> elements, Collector<WindowedValue<KV<K, OutputT>>> out) throws Exception { PipelineOptions options = serializedOptions.get(); FlinkSideInputReader sideInputReader = new FlinkSideInputReader(sideInputs, getRuntimeContext()); AbstractFlinkCombineRunner<K, InputT, AccumT, OutputT, W> reduceRunner; if (windowingStrategy.getWindowFn().windowCoder().equals(IntervalWindow.getCoder())) { reduceRunner = new SortingFlinkCombineRunner<>(); } else { reduceRunner = new HashingFlinkCombineRunner<>(); } reduceRunner.combine( new AbstractFlinkCombineRunner.CompleteFlinkCombiner<>(combineFn), windowingStrategy, sideInputReader, options, elements, out); } }
reduceFunction = new FlinkMergingNonShuffleReduceFunction<>( combineFn, boundedStrategy, sideInputStrategies, context.getPipelineOptions());
@Override public void reduce( Iterable<WindowedValue<KV<K, InputT>>> elements, Collector<WindowedValue<KV<K, OutputT>>> out) throws Exception { PipelineOptions options = serializedOptions.get(); FlinkSideInputReader sideInputReader = new FlinkSideInputReader(sideInputs, getRuntimeContext()); AbstractFlinkCombineRunner<K, InputT, AccumT, OutputT, W> reduceRunner; if (windowingStrategy.getWindowFn().windowCoder().equals(IntervalWindow.getCoder())) { reduceRunner = new SortingFlinkCombineRunner<>(); } else { reduceRunner = new HashingFlinkCombineRunner<>(); } reduceRunner.combine( new AbstractFlinkCombineRunner.CompleteFlinkCombiner<>(combineFn), windowingStrategy, sideInputReader, options, elements, out); } }