Class Histogram.HistogramCombineFn<T>

  • All Implemented Interfaces:
    java.io.Serializable, org.apache.beam.sdk.transforms.CombineFnBase.GlobalCombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>, org.apache.beam.sdk.transforms.display.HasDisplayData
    Enclosing class:
    Histogram

    public static final class Histogram.HistogramCombineFn<T>
    extends org.apache.beam.sdk.transforms.Combine.CombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>
    Combiner for calculating histograms.

    The HistogramCombineFn class can be used with GroupBy transform to aggregate the input values in the KV pair.

    Example of use:

    
     PCollection<ParsedMessage> pc = ...;
     PCollection<Row> rows =
        pc.apply(Group.byFieldNames("dimension1", "dimension2").aggregateField("value",
          HistogramCombineFn.<Double>create(BucketBounds.linear(1.0, 2.0, 160)),
          Field.of("bucketCounts", FieldType.array(FieldType.INT64))));
    
     
    See Also:
    Serialized Form
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator addInput​(org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator accumulator, T input)  
      static <T extends java.lang.Number>
      Histogram.HistogramCombineFn<T>
      create​(Histogram.BucketBounds bucketBounds)
      Returns a histogram combiner with the given Histogram.BucketBounds.
      org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator createAccumulator()  
      java.util.List<java.lang.Long> extractOutput​(org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator accumulator)  
      java.lang.reflect.TypeVariable<?> getAccumTVariable()  
      org.apache.beam.sdk.coders.Coder<org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator> getAccumulatorCoder​(org.apache.beam.sdk.coders.CoderRegistry registry, org.apache.beam.sdk.coders.Coder<T> inputCoder)  
      org.apache.beam.sdk.coders.Coder<java.util.List<java.lang.Long>> getDefaultOutputCoder​(org.apache.beam.sdk.coders.CoderRegistry registry, org.apache.beam.sdk.coders.Coder<T> inputCoder)  
      java.lang.String getIncompatibleGlobalWindowErrorMessage()  
      java.lang.reflect.TypeVariable<?> getInputTVariable()  
      java.lang.reflect.TypeVariable<?> getOutputTVariable()  
      org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator mergeAccumulators​(java.lang.Iterable<org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator> accumulators)  
      void populateDisplayData​(org.apache.beam.sdk.transforms.display.DisplayData.Builder builder)  
      • Methods inherited from class org.apache.beam.sdk.transforms.Combine.CombineFn

        apply, compact, defaultValue, getInputType, getOutputType
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • createAccumulator

        public org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator createAccumulator()
        Specified by:
        createAccumulator in class org.apache.beam.sdk.transforms.Combine.CombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>
      • addInput

        public org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator addInput​(org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator accumulator,
                                                                                                T input)
                                                                                         throws java.lang.IllegalArgumentException
        Specified by:
        addInput in class org.apache.beam.sdk.transforms.Combine.CombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>
        Throws:
        java.lang.IllegalArgumentException
      • mergeAccumulators

        public org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator mergeAccumulators​(java.lang.Iterable<org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator> accumulators)
        Specified by:
        mergeAccumulators in class org.apache.beam.sdk.transforms.Combine.CombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>
      • extractOutput

        public java.util.List<java.lang.Long> extractOutput​(org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator accumulator)
                                                     throws java.lang.NullPointerException
        Specified by:
        extractOutput in class org.apache.beam.sdk.transforms.Combine.CombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>
        Throws:
        java.lang.NullPointerException
      • getAccumulatorCoder

        public org.apache.beam.sdk.coders.Coder<org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator> getAccumulatorCoder​(org.apache.beam.sdk.coders.CoderRegistry registry,
                                                                                                                                             org.apache.beam.sdk.coders.Coder<T> inputCoder)
        Specified by:
        getAccumulatorCoder in interface org.apache.beam.sdk.transforms.CombineFnBase.GlobalCombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>
      • getDefaultOutputCoder

        public org.apache.beam.sdk.coders.Coder<java.util.List<java.lang.Long>> getDefaultOutputCoder​(org.apache.beam.sdk.coders.CoderRegistry registry,
                                                                                                      org.apache.beam.sdk.coders.Coder<T> inputCoder)
        Specified by:
        getDefaultOutputCoder in interface org.apache.beam.sdk.transforms.CombineFnBase.GlobalCombineFn<T,​org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,​java.util.List<java.lang.Long>>
      • populateDisplayData

        public void populateDisplayData​(org.apache.beam.sdk.transforms.display.DisplayData.Builder builder)
        Specified by:
        populateDisplayData in interface org.apache.beam.sdk.transforms.display.HasDisplayData
      • getIncompatibleGlobalWindowErrorMessage

        public java.lang.String getIncompatibleGlobalWindowErrorMessage()
        Specified by:
        getIncompatibleGlobalWindowErrorMessage in interface org.apache.beam.sdk.transforms.CombineFnBase.GlobalCombineFn<InputT extends java.lang.Object,​AccumT extends java.lang.Object,​OutputT extends java.lang.Object>
      • getInputTVariable

        public java.lang.reflect.TypeVariable<?> getInputTVariable()
      • getAccumTVariable

        public java.lang.reflect.TypeVariable<?> getAccumTVariable()
      • getOutputTVariable

        public java.lang.reflect.TypeVariable<?> getOutputTVariable()