org.apache.hadoop.mapreduce.lib.aggregate

## Class ValueAggregatorBaseDescriptor

- java.lang.Object
- - org.apache.hadoop.mapreduce.lib.aggregate.ValueAggregatorBaseDescriptor

- All Implemented Interfaces:
    ValueAggregatorDescriptor
  Direct Known Subclasses:
    ValueAggregatorBaseDescriptor

      @InterfaceAudience.Public
       @InterfaceStability.Stable
      public class ValueAggregatorBaseDescriptor
      extends Object
      implements ValueAggregatorDescriptor

  This class implements the common functionalities of the subclasses of ValueAggregatorDescriptor class.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DOUBLE_VALUE_SUM`
    `String` | `inputFile`
    `static String` | `LONG_VALUE_MAX`
    `static String` | `LONG_VALUE_MIN`
    `static String` | `LONG_VALUE_SUM`
    `static String` | `STRING_VALUE_MAX`
    `static String` | `STRING_VALUE_MIN`
    `static String` | `UNIQ_VALUE_COUNT`
    `static String` | `VALUE_HISTOGRAM`

    - ### Fields inherited from interface org.apache.hadoop.mapreduce.lib.aggregate.ValueAggregatorDescriptor

      `ONE, TYPE_SEPARATOR`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ValueAggregatorBaseDescriptor()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `configure(Configuration conf)` get the input file name.
    `static Map.Entry<Text,Text>` | `generateEntry(String type, String id, Text val)`
    `ArrayList<Map.Entry<Text,Text>>` | `generateKeyValPairs(Object key, Object val)` Generate 1 or 2 aggregation-id/value pairs for the given key/value pair.
    `static ValueAggregator` | `generateValueAggregator(String type, long uniqCount)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### UNIQ_VALUE_COUNT

          public static final String UNIQ_VALUE_COUNT

      See Also:
        Constant Field Values

    - #### LONG_VALUE_SUM

          public static final String LONG_VALUE_SUM

      See Also:
        Constant Field Values

    - #### DOUBLE_VALUE_SUM

          public static final String DOUBLE_VALUE_SUM

      See Also:
        Constant Field Values

    - #### VALUE_HISTOGRAM

          public static final String VALUE_HISTOGRAM

      See Also:
        Constant Field Values

    - #### LONG_VALUE_MAX

          public static final String LONG_VALUE_MAX

      See Also:
        Constant Field Values

    - #### LONG_VALUE_MIN

          public static final String LONG_VALUE_MIN

      See Also:
        Constant Field Values

    - #### STRING_VALUE_MAX

          public static final String STRING_VALUE_MAX

      See Also:
        Constant Field Values

    - #### STRING_VALUE_MIN

          public static final String STRING_VALUE_MIN

      See Also:
        Constant Field Values

    - #### inputFile

          public String inputFile

  - ### Constructor Detail

    - #### ValueAggregatorBaseDescriptor

          public ValueAggregatorBaseDescriptor()

  - ### Method Detail

    - #### generateEntry

          public static Map.Entry<Text,Text> generateEntry(String type,
                                                           String id,
                                                           Text val)

      Parameters:
        `type` - the aggregation type
        `id` - the aggregation id
        `val` - the val associated with the id to be aggregated
      Returns:
        an Entry whose key is the aggregation id prefixed with the aggregation type.

    - #### generateValueAggregator

          public static ValueAggregator generateValueAggregator(String type,
                                                                long uniqCount)

      Parameters:
        `type` - the aggregation type
        `uniqCount` - the limit in the number of unique values to keep, if type is UNIQ_VALUE_COUNT
      Returns:
        a value aggregator of the given type.

    - #### generateKeyValPairs

          public ArrayList<Map.Entry<Text,Text>> generateKeyValPairs(Object key,
                                                                     Object val)

      Generate 1 or 2 aggregation-id/value pairs for the given key/value pair. The first id will be of type LONG_VALUE_SUM, with "record_count" as its aggregation id. If the input is a file split, the second id of the same type will be generated too, with the file name as its aggregation id. This achieves the behavior of counting the total number of records in the input data, and the number of records in each input file.
      Specified by:
        `generateKeyValPairs` in interface `ValueAggregatorDescriptor`
      Parameters:
        `key` - input key
        `val` - input value
      Returns:
        a list of aggregation id/value pairs. An aggregation id encodes an aggregation type which is used to guide the way to aggregate the value in the reduce/combiner phrase of an Aggregate based job.

    - #### configure

          public void configure(Configuration conf)

      get the input file name.
      Specified by:
        `configure` in interface `ValueAggregatorDescriptor`
      Parameters:
        `conf` - a configuration object

Copyright © 2022 Apache Software Foundation. All rights reserved.