Class Histogram.HistogramCombineFn<T>
- java.lang.Object
-
- org.apache.beam.sdk.transforms.Combine.CombineFn<T,org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator,java.util.List<java.lang.Long>>
-
- org.apache.beam.sdk.extensions.combiners.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.HistogramAccumulatoraddInput(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 givenHistogram.BucketBounds.org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulatorcreateAccumulator()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.StringgetIncompatibleGlobalWindowErrorMessage()java.lang.reflect.TypeVariable<?>getInputTVariable()java.lang.reflect.TypeVariable<?>getOutputTVariable()org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulatormergeAccumulators(java.lang.Iterable<org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator> accumulators)voidpopulateDisplayData(org.apache.beam.sdk.transforms.display.DisplayData.Builder builder)
-
-
-
Method Detail
-
create
public static <T extends java.lang.Number> Histogram.HistogramCombineFn<T> create(Histogram.BucketBounds bucketBounds)
Returns a histogram combiner with the givenHistogram.BucketBounds.- Parameters:
bucketBounds- the instance of theHistogram.BucketBoundsclass with desired parameters of the histogram.
-
createAccumulator
public org.apache.beam.sdk.extensions.combiners.Histogram.HistogramAccumulator createAccumulator()
- Specified by:
createAccumulatorin classorg.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:
addInputin classorg.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:
mergeAccumulatorsin classorg.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:
extractOutputin classorg.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:
getAccumulatorCoderin interfaceorg.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:
getDefaultOutputCoderin interfaceorg.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:
populateDisplayDatain interfaceorg.apache.beam.sdk.transforms.display.HasDisplayData
-
getIncompatibleGlobalWindowErrorMessage
public java.lang.String getIncompatibleGlobalWindowErrorMessage()
- Specified by:
getIncompatibleGlobalWindowErrorMessagein interfaceorg.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()
-
-