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
> >
>

Reply via email to