Class CombineFns

java.lang.Object
org.apache.beam.sdk.transforms.CombineFns

public class CombineFns extends Object
Static utility methods that create combine function instances.
  • Constructor Details

    • CombineFns

      public CombineFns()
  • Method Details

    • compose

      public static CombineFns.ComposeCombineFnBuilder compose()
      Returns a 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...);
                    }
               }));