2012-11-23 65 views
0

我在HBase表中有20行,rowkey是從1到20開始的長格式。我想查詢rowkey從1開始的記錄。我嘗試了PrefixFilterBinaryPrefixComparator,但它只有在rowkey在字符串fromat中才能正常工作。如果它很長,查詢將返回所有記錄。我怎樣才能做到這一點?HBase中的RowFilter

篩選表達

Scan scan=new Scan(); 
Filter rowFilter=new RowFilter(CompareOp.EQUAL, new BinaryPrefixComparator(Bytes.toBytes("1"))); 
//Filter rowFilter=new RowFilter(CompareOp.NOT_EQUAL, new BinaryPrefixComparator(Bytes.toBytes("1"))); 
scan.setFilter(rowFilter); 
ResultScanner resultscanner=htable.getScanner(scan); 

回答

1

如果行鍵long,你必須是指他們爲long在您的查詢,而不是字符串。
即:代替Bytes.toBytes("1")使用Bytes.toBytes(1L)

您可以設置的範圍進行掃描:

scan.setStartRow(Bytes.toBytes(1L)); 
scan.setStopRow(Bytes.toBytes(21L)); //since stopRow is exclusive