On Mar 15, 2012, at 17:08 , Peter Wolf wrote:

> Hi all,
> 
> I am doing a scan on a table with multiple families.  My code looks like 
> this...
> 
>         Scan scan = new Scan(calculateStartRowKey(a), 
> calculateEndRowKey(b));
> 
>         scan.setCaching(10000);
>         Filter filter = new SingleColumnValueFilter(xFamily, xColumn, 
> CompareFilter.CompareOp.EQUAL, Bytes.toBytes(x));

>From SingleColumnValueFilter documentation ( 
>http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html
> )
When using this filter on a Scan with specified inputs, the column to be tested 
should also be added as input (otherwise the filter will regard the column as 
missing).

I understand that you have to add xFamily, so your example below with the 
commented out addFamily(xFamily) would be wrong.


>         scan.setFilter(filter);
>         scan
>                 .addFamily(xFamily)
>                 .addFamily(yFamily)
>                 .addFamily(zFamily);
> 
>         ResultScanner scanner = hTable.getScanner(scan);
> 
>         Iterator<Result> it = scanner.iterator();
>         int resultCount = 0;
>         while (it.hasNext()) {
>               Result result = it.next();
> 
>               resultCount++;
>         }
> 
> However, I am getting different number of results, depending on which 
> families are added.  For example these give different result counts
> 
>         scan
>                 //.addFamily(xFamily)
>                 .addFamily(yFamily)
>                 .addFamily(zFamily);
> and
>         scan
>                 .addFamily(xFamily)
>                 .addFamily(yFamily)
>                 .addFamily(zFamily);
> 
> 
> There is no error message, and I don't see anything in the Scan 
> documentation.  Does anyone know what is going on?
> 
> Thanks
> Peter
> 
> 

Reply via email to