code: @SuppressWarnings("unchecked")
    protected void reduce(KEYIN key, Iterable<VALUEIN> values, Context context
                          ) throws IOException, InterruptedException {
      for(VALUEIN value: values) {
        context.write((KEYOUT) key, (VALUEOUT) value);
      }
    }
docs: This method is called once for each key. Most applications will define
  their reduce class by overriding this method. The default implementation
  is an identity function.