@Override
    public void map(ImmutableBytesWritable row, Result value, Context context) throws IOException {
      try {
        if (LOG.isTraceEnabled()) {
          LOG.trace(
            "Considering the row." + Bytes.toString(row.get(), row.getOffset(), row.getLength()));
        }
        if (
          filter == null || !filter.filterRowKey(
            PrivateCellUtil.createFirstOnRow(row.get(), row.getOffset(), (short) row.getLength()))
        ) {
          for (ExtendedCell kv : ClientInternalHelper.getExtendedRawCells(value)) {
            kv = filterKv(filter, kv);
            // skip if we filtered it out
            if (kv == null) {
              continue;
            }
            Cell ret = convertKv(kv, cfRenameMap);
            context.write(new CellWritableComparable(ret),
              new MapReduceExtendedCell((ExtendedCell) ret));
          }
        }
      } catch (InterruptedException e) {
        LOG.error("Interrupted while emitting Cell", e);
        Thread.currentThread().interrupt();
      }
    }
@param row     The current table row key.
@param value   The columns.
@param context The current context.
@throws IOException When something is broken with the data.
hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java