Index: src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java (revision 1567461) +++ src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java (working copy) @@ -88,6 +88,7 @@ Context context) throws IOException { try { + if (filterRowKey(row.get(), row.getOffset(), row.getLength())) return; for (KeyValue kv : value.raw()) { kv = filterKv(kv); // skip if we filtered it out @@ -136,6 +137,7 @@ private void writeResult(ImmutableBytesWritable key, Result result, Context context) throws IOException, InterruptedException { + if (filterRowKey(key.get(), key.getOffset(), key.getLength())) return; Put put = null; Delete delete = null; for (KeyValue kv : result.raw()) { @@ -238,6 +240,15 @@ } /** + * Attempt to filter out the row key + * @param row on which to apply the filter + * @return true if the key should not be written, false otherwise + */ + private static boolean filterRowKey(byte[] row, int offset, int length) { + return filter != null && filter.filterRowKey(row, offset, length); + } + + /** * Attempt to filter out the keyvalue * @param kv {@link KeyValue} on which to apply the filter * @return null if the key should not be written, otherwise returns the original