private Text encodeRows(Context context, Text key, Iterable<ImmutableBytesWritable> rows)
      throws IOException {
      StringBuilder sb = new StringBuilder(key.toString());
      sb.append(seperator);
      boolean moreThanOne = false;
      long count = 0;
      for (ImmutableBytesWritable row : rows) {
        if (moreThanOne) {
          sb.append(",");
        }
        sb.append(base64.encodeToString(row.copyBytes()));
        moreThanOne = true;
        count++;
      }
      context.getCounter("PROBLEM", "Problem MOB files").increment(1L);
      context.getCounter("PROBLEM", "Affected rows").increment(count);
      context
        .getCounter("ROWS WITH PROBLEMS PER FILE",
          "Number of HFiles with " + log10GroupedString(count) + "s of affected rows")
        .increment(1L);
      key.set(sb.toString());
      return key;
    }
reuses the passed Text key. appends the configured seperator and then a comma seperated list
of base64 encoded row keys
hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mob/mapreduce/MobRefReporter.java