public class CombineFns
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
CombineFns.CoCombineResult
A tuple of outputs produced by a composed combine functions. 
 | 
static class  | 
CombineFns.ComposeCombineFnBuilder
A builder class to construct a composed  
CombineFnBase.GlobalCombineFn. | 
static class  | 
CombineFns.ComposedCombineFn<DataT>
A composed  
Combine.CombineFn that applies multiple CombineFns. | 
static class  | 
CombineFns.ComposedCombineFnWithContext<DataT>
A composed  
CombineWithContext.CombineFnWithContext that applies multiple CombineFnWithContexts. | 
| Constructor and Description | 
|---|
CombineFns()  | 
| Modifier and Type | Method and Description | 
|---|---|
static CombineFns.ComposeCombineFnBuilder | 
compose()
Returns a  
CombineFns.ComposeCombineFnBuilder to construct a composed CombineFnBase.GlobalCombineFn. | 
public static CombineFns.ComposeCombineFnBuilder compose()
CombineFns.ComposeCombineFnBuilder to construct a composed CombineFnBase.GlobalCombineFn.
 The same TupleTag cannot be used in a composition multiple times.
 
Example:
PCollection<Integer> globalLatencies = ...; TupleTag<Integer> maxLatencyTag = new TupleTag<Integer>(); TupleTag<Double> meanLatencyTag = new TupleTag<Double>();SimpleFunction<Integer, Integer> identityFn = new SimpleFunction<Integer, Integer>(){@Override public Integer apply(Integer input) { return input; }};PCollection<CoCombineResult> maxAndMean = globalLatencies.apply( Combine.globally( CombineFns.compose() .with(identityFn, new MaxIntegerFn(), maxLatencyTag) .with(identityFn, new MeanFn<Integer>(), meanLatencyTag)));PCollection<T> finalResultCollection = maxAndMean .apply(ParDo.of( new DoFn<CoCombineResult, T>(){@ProcessElement public void processElement(@Element CoCombineResult e, OutputReceiver<T> r) throws Exception { Integer maxLatency = e.get(maxLatencyTag); Double meanLatency = e.get(meanLatencyTag); .... Do Something .... r.output(...some T...); }}));