The below looks 'right'. Maybe try uncommenting this:
this.comparator.compareTo(Arrays.copyOfRange(data, offset, offset + length)); // if (LOG.isDebugEnabled()) { // LOG.debug("compareResult=" + compareResult + " " + Bytes.toString(data, offset, length)); // } ...in SingleColumnValueFilter. It might give you a clue as to where things are going awry. St.Ack On Tue, May 18, 2010 at 9:25 AM, Patrick Datko <patrick.da...@ymc.ch> wrote: > Hey, > > i'm building a Map Reduce Job which should get Data from a HBase Table > filter it an store the reduced data in another HBase Table. I used the > SingleColumnValueFilter to limit the Data that will be commit to the > Map-Process. The Problem is, the Filter doesn't reduce the Data but > commit all Data in the Table to the Map Process: > > The code looks like this for the Filter: > > Scan scan = new Scan(); > String columns = "details"; > String qualifier = "details:page"; > String value = "5"; > scan.setFilter(new SingleColumnValueFilter(Bytes.toBytes(columns), > Bytes.toBytes(qualifier), CompareOp.EQUAL, Bytes.toBytes("5"))); > TableMapReduceUtil.initTableMapperJob("books", scan, mapper.class, > ImmutableBytesWritable.class, IntWritable.class, job); > > > And this was my Code for filling the Table: > > Put put = new Put(rowkey); > put.add(Bytes.toBytes("details"), Bytes.toBytes("page"), > Bytes.toBytes(rand.nextInt(20))); > > and I didn't understand why the filter doesn't work! I hope anybody can > help me. > > Best regards, > Patrick > > > >