想經過:經過SingleColumnValueFilter來scan:想scan出加粗的那列
zkb column=course:art, timestamp=1356629086401, value=87 spa
scan表的結果: get
hbase(main):002:0> scan 'scores' io
ROW COLUMN+CELL
zkb column=course:, timestamp=1356629086396, value=90
zkb column=course:art, timestamp=1356629086401, value=87
zkb column=course:math, timestamp=1356629086398, value=97
zkb column=grade:, timestamp=1356629086385, value=5
1 row(s) in 0.2260 seconds
hbase(main):003:0>
經過SingleColumnValueFilter來scan:想scan出加粗的那列
zkb column=course:art, timestamp=1356629086401, value=87
public static void scanBySingleColumnValueFilter(String tableName,String family,String qual,int value) throws IOException{
HTable table = new HTable(conf, tableName);
byte[] b_family = Bytes.toBytes(family);
byte[] b_qual = Bytes.toBytes(qual);
byte[] b_value = Bytes.toBytes(value);
FilterList filterList = new FilterList();
SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(b_family, b_qual, CompareOp.NOT_EQUAL, b_value);
// singleColumnValueFilter.setFilterIfMissing(true);
filterList.addFilter(singleColumnValueFilter);
Scan scan = new Scan();
scan.setFilter(filterList);
scan.addColumn(b_family, b_qual);
ResultScanner rs = table.getScanner(scan);
showResultScanner(rs);
}
主方法中:
HBaseClient.scanBySingleColumnValueFilter(tablename, "course", "art", 87); //這裏用String吧
=========== scanBySingleColumnValueFilter =======
zkb course:art 1356630307010 87
播放器加載中...
正在發送...