Hi Rajesh

>From personal use, the rowFilter allows for finer grained results when 
>performing a large scan where the row keys don't exaclty match your criteria. 
>For example if you use start and end rows to constrain your scan, the results 
>may contain some results that you don't want and you can use the row Prefix 
>filter to only get the ones you want. 

In the setup im using start and end rows are the fastest way to get to the 
segments of data I need within hbase. The row filter is then used to 
clean/restict the data, think of it like the HAVING clause in SQL if you are 
used to that, It happens more in post processing of the result set.

Thats my understanding of how it should be used, others may have different 
feedback on this.

-Ian Brooks


On Thursday 10 Jul 2014 17:08:58 Madabhattula Rajesh Kumar wrote:
> Hi Ian,
> 
> Thank you very much of the solution. Could you please explain at what are
> the use cases we need to use RowFilter?
> 
> Regards,
> Rajesh
> 
> 
> On Thu, Jul 10, 2014 at 4:48 PM, Ian Brooks <[email protected]> wrote:
> 
> > HI Rajesh,
> >
> > If you know the rowkeys already, you don't need to perform a scan, you can
> > just perform a get on the list of rowkeys
> >
> > e.g.
> >
> >
> > List<Get> RowKeyList = new ArrayList<Get>();
> >
> > # for each rowkey
> >   RowKeyList.add(new Get(Bytes.toBytes(rowkey)));
> >
> > Result[] results = table.get(RowKeyList);
> >
> > for (Result r : results) {
> >   for(KeyValue kv : r.raw()) {
> >      System.out.print(new String(kv.getRow()) + " ");
> >   }
> > }
> >
> > -Ian Brooks
> >
> > On Thursday 10 Jul 2014 16:38:04 Madabhattula Rajesh Kumar wrote:
> > > Hi Team,
> > >
> > > Could you please help me to resolve below issue.
> > >
> > > In my hbase table, i've a 30 records. I need to retrieve records based on
> > > list of rowkeys. I'm using below code base. It is not giving records
> > >
> > > HTable table = new HTable(configuration, tableName);
> > > List<Filter> filters = new ArrayList<Filter>();
> > > Filter rowFilter=new RowFilter(CompareFilter.CompareOp.EQUAL, new
> > > BinaryPrefixComparator(Bytes.toBytes(rowkey)));
> > > filters.add(rowFilter);
> > >
> > > Filter rowFilter=new RowFilter(CompareFilter.CompareOp.EQUAL, new
> > > BinaryPrefixComparator(Bytes.toBytes(rowkey1)));
> > > filters.add(rowFilter);
> > >
> > > FilterList fl = new FilterList(filters);
> > >
> > > Scan s = new Scan();
> > > s.setFilter(fl);
> > > ResultScanner ss = table.getScanner(s);
> > > {
> > >  for(KeyValue kv : r.raw())
> > >   {
> > >     System.out.print(new String(kv.getRow()) + " ");
> > >   }
> > > }
> > >
> > > Thank you for support
> > >
> > > Regards,
> > > Rajesh
> >

Reply via email to