Clarification: setRowPrefixFilter() doesn't use PrefixFilter. It calculates
the scan range itself:
public Scan setRowPrefixFilter(byte[] rowPrefix) {
if (rowPrefix == null) {
setStartRow(HConstants.EMPTY_START_ROW);
setStopRow(HConstants.EMPTY_END_ROW);
} else {
this.setStartRow(rowPrefix);
this.setStopRow(calculateTheClosestNextRowKeyForPrefix(rowPrefix));
}
FYI
On Fri, Jun 5, 2015 at 11:27 AM, jeremy p <[email protected]>
wrote:
> I've heard that PrefixFilter does a full table scan, and that a range scan
> is faster. Am I mistaken?
>
> On Fri, Jun 5, 2015 at 2:22 PM, Ted Yu <[email protected]> wrote:
>
> > You can utilize PrefixFilter.
> >
> > See example in http://hbase.apache.org/book.html#scan
> >
> > On Fri, Jun 5, 2015 at 11:18 AM, jeremy p <
> [email protected]>
> > wrote:
> >
> > > Assume that my keys look like this :
> > > bar:0
> > > bar:1
> > > bar:2
> > > baz:0
> > > baz:1
> > > foo:0
> > > foo:1
> > > foo:2
> > >
> > > How do I do a fast range scan that returns all the rows that begin with
> > > "baz:"? Assume that I know nothing about any of the other rows in the
> > > table.
> > >
> > > Thanks for taking a look!
> > >
> > > --Jeremy
> > >
> >
>