I think you can implement your own filter that overrides this method: public void filterRow(List<KeyValue> ignored) throws IOException { When certain qualifiers don't appear in the List, you can remove all the kvs from the passed List.
Cheers On Wed, May 8, 2013 at 7:00 AM, Amit Sela <am...@infolinks.com> wrote: > Forgot to mention: Hadoop 1.0.4 & HBase 0.94.2 > > > On Wed, May 8, 2013 at 4:52 PM, Amit Sela <am...@infolinks.com> wrote: > > > Hi all, > > > > I'm trying to scan my HBase table to get only rows that are missing some > > qualifiers. > > > > I read that for getting rows with specific qualifiers I should use > > something like: > > > > List list = new ArrayList<Filter>(2); > > Filter filter1 = new SingleColumnValueFilter(Bytes.toBytes("fam1"), > > Bytes.toBytes("VALUE1"), CompareOp.DOES_NOT_EQUAL, > > Bytes.toBytes("DOESNOTEXIST")); > > filter1.setFilterIfMissing(true); > > list.addFilter(filter1); > > Filter filter2 = new SingleColumnValueFilter(Bytes.toBytes("fam2"), > > Bytes.toBytes("VALUE2"), CompareOp.DOES_NOT_EQUAL, > > Bytes.toBytes("DOESNOTEXIST")); > > filter2.setFilterIfMissing(true); > > list.addFilter(filter2); > > FilterList filterList = new FilterList(list); > > Scan scan = new Scan(); > > scan.setFilter(filterList); > > > > (I found this here: > > > http://mapredit.blogspot.co.il/2012/05/using-filters-in-hbase-to-match-two.html > > ) > > And it works just fine. > > > > So as I thought that if I use SkipFilter(FilterList) I'll skip the rows > > returned by the filter list >> causing a sort of NOT and getting all rows > > that don't have any of theses qualifiers. > > > > This doesn't seem to work... Anyone has a good suggestion how to get rows > > that are missing specific qualifiers ? Any idea why SkipFilter fails ? > > > > Thanks, > > > > Amit > > >