hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Yu <yuzhih...@gmail.com>
Subject Re: Problem in filters
Date Wed, 17 Apr 2013 13:16:29 GMT
If you specify producIdFilter without using FilterList, what would you get ?

Thanks

On Apr 17, 2013, at 4:51 AM, Omkar Joshi <Omkar.Joshi@lntinfotech.com> wrote:

> Hi,
> 
> I'm having the a table named ORDERS with 1000851 rows:
> 
> rowkey :                       ORDER_ID
> 
> column family : ORDER_DETAILS
>            columns : CUSTOMER_ID
>                                    PRODUCT_ID
>                                    REQUEST_DATE
>                                    PRODUCT_QUANTITY
>                                    PRICE
>                                    PAYMENT_MODE
> 
> I'm using the following code to access the data :
> 
> public void executeOrdersQuery() {
>            /*
>            * SELECT ORDER_ID,CUSTOMER_ID,PRODUCT_ID,QUANTITY FROM ORDERS WHERE
>            * QUANTITY >=16 and PRODUCT_ID='P60337998'
>            */
>            String tableName = "ORDERS";
> 
>            String family = "ORDER_DETAILS";
>            int quantity = 16;
>            String productId = "P60337998";
> 
>            SingleColumnValueFilter quantityFilter = new SingleColumnValueFilter(
>                        Bytes.toBytes(family), Bytes.toBytes("PRODUCT_QUANTITY"),
>                        CompareFilter.CompareOp.GREATER_OR_EQUAL,
>                        Bytes.toBytes(quantity));
> 
>            SingleColumnValueFilter productIdFilter = new SingleColumnValueFilter(
>                        Bytes.toBytes(family), Bytes.toBytes("PRODUCT_ID"),
>                        CompareFilter.CompareOp.EQUAL, Bytes.toBytes(productId));
> 
>            FilterList filterList = new FilterList(
>                        FilterList.Operator.MUST_PASS_ALL);
>            // filterList.addFilter(quantityFilter);
>            filterList.addFilter(productIdFilter);
> 
>            Scan scan = new Scan();
>            scan.addColumn(Bytes.toBytes(family), Bytes.toBytes("ORDER_ID"));
>            scan.addColumn(Bytes.toBytes(family), Bytes.toBytes("CUSTOMER_ID"));
>            scan.addColumn(Bytes.toBytes(family), Bytes.toBytes("PRODUCT_ID"));
>            scan.addColumn(Bytes.toBytes(family), Bytes.toBytes("QUANTITY"));
> 
>            scan.setFilter(filterList);
> 
>            HTableInterface tbl = hTablePool.getTable(Bytes.toBytes(tableName));
>            ResultScanner scanResults = null;
>            try {
>                  scanResults = tbl.getScanner(scan);
> 
>                  System.out.println("scanResults : ");
> 
>                  for (Result result : scanResults) {
>                        System.out.println("The result is " + result);
>                  }
> 
>            } catch (IOException e) {
>                  // TODO Auto-generated catch block
>                  e.printStackTrace();
>            } finally {
>                  try {
>                        tbl.close();
>                  } catch (IOException e) {
>                        // TODO Auto-generated catch block
>                        e.printStackTrace();
>                  }
>            }
> 
>      }
> 
> First few records of the table are :
> 
> O12004457;C110;P60337998;2000-5-17;16;19184.0;cash;Customer is the new emperor. Either
you give him what he desires or you are
> banished from his kingdom.;Before you place your order, we reserve the right to change
these terms and conditions at any time
> .Any such changes will take effect when posted on this website and it is your responsibility
to read these terms and condition
> s on each occasion you use this website. We will never supply you with substitute goods.Our
VAT registration number is 875 505
> 5 01.;
> 
> O12004458;C425;P50478434;2008-4-30;3;831825.0;debit;In times of change, the learners
will inherit the earth, while the knowers
> will find themselves beautifully equipped to deal with a world that no longer exists;Before
you place your order, we reserve
> the right to change these terms and conditions at any time.Any such changes will take
effect when posted on this website and i
> t is your responsibility to read these terms and conditions on each occasion you use
this website. We will never supply you wi
> th substitute goods.Our VAT registration number is 875 5055 01.;
> 
> 
> 
> If I don't use any filter, the row that I'm trying to fetch is returned along with the
1000s of others but as soon as I use even a single filter(the other is commented), no results
are returned.
> 
> Is there some problem with my code?
> 
> Regards,
> Omkar Joshi
> 
> 
> ________________________________
> The contents of this e-mail and any attachment(s) may contain confidential or privileged
information for the intended recipient(s). Unintended recipients are prohibited from taking
action on the basis of information in this e-mail and using or disseminating the information,
and must notify the sender and delete it from their system. L&T Infotech will not accept
responsibility or liability for the accuracy or completeness of, or the presence of any virus
or disabling code in this e-mail"

Mime
View raw message