code: public void map(K1 key, V1 value,
                    OutputCollector<Text, Text> output, Reporter reporter) throws IOException {
  
      Iterator iter = this.aggregatorDescriptorList.iterator();
      while (iter.hasNext()) {
        ValueAggregatorDescriptor ad = (ValueAggregatorDescriptor) iter.next();
        Iterator<Entry<Text, Text>> ens =
          ad.generateKeyValPairs(key, value).iterator();
        while (ens.hasNext()) {
          Entry<Text, Text> en = ens.next();
          output.collect(en.getKey(), en.getValue());
        }
      }
    }
docs: the map function. It iterates through the value aggregator descriptor
  list to generate aggregation id/value pairs and emit them.