code: protected void collect(Object key, TaggedMapOutput aRecord,
                           OutputCollector output, Reporter reporter) throws IOException {
      this.collected += 1;
      addLongValue("collectedCount", 1);
      if (aRecord != null) {
        output.collect(key, aRecord.getData());
        reporter.setStatus("key: " + key.toString() + " collected: " + collected);
        addLongValue("actuallyCollectedCount", 1);
      }
    }
docs: The subclass can overwrite this method to perform additional filtering
  and/or other processing logic before a value is collected.
  
  @param key
  @param aRecord
  @param output
  @param reporter
  @throws IOException