2、Dedicated Filters
2.1 SingleColumnValueFilter √
2.2 SingleColumnValueExcludeFilter √
2.3 PrefixFilter √
2.4 PageFilter √
2.5 KeyOnlyFilter √
2.6 FirstKeyOnlyFilter √
2.7 TimestampsFilter ×
2.8 RandomRowFilter √
2.1 SingleColumnValueFilter
例子:Filter filter=new SingleColumnValueExcludeFilter(Bytes.toBytes(Family), Bytes.toBytes(Qualifier), CompareOp.EQUAL, Bytes.toBytes(Value));
2.2 SingleColumnValueExcludeFilter
使用:跟singlecolumnvaluefilter正好相反,這個是顯示表中除了過濾的這條以外的所有數據
例子:
Filter filter=new SingleColumnValueExcludeFilter(Bytes.toBytes(Family), Bytes.toBytes(Qualifier), CompareOp.EQUAL, Bytes.toBytes(Value)); ((SingleColumnValueExcludeFilter) filter).setFilterIfMissing(true);注意:!需要加((SingleColumnValueExcludeFilter) filter).setFilterIfMissing(true);
2.3 PrefixFilter 和ColumnPrefixFilter
使用:根據Row或Column的前綴取數據
例子:Filter filter=new PrefixFilter(Bytes.toBytes("r"));
取出RowKey以r開頭的所有數據
2.4 PageFilter
通過設置pageside返回每一頁page的數量
final byte[] POSTFIX = new byte[] { 0x00 }; HTable table; try { table = new HTable(config, tablename); Filter filter = new PageFilter(pageside); byte[] lastRow = null; int totalRows = 0; while (true) { Scan scan = new Scan(); scan.setFilter(filter); if(lastRow != null){ //注意這里添加了POSTFIX操作,不然死循環了 byte[] startRow = Bytes.add(lastRow,POSTFIX); scan.setStartRow(startRow); } ResultScanner scanner = table.getScanner(scan); int localRows = 0; Result result; while((result = scanner.next()) != null){ System.out.println(localRows++ + ":" + result); totalRows ++; lastRow = result.getRow(); } scanner.close(); if(localRows == 0) break; } System.out.println("total rows:" + totalRows); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }2.5 KeyOnlyFilter
* 一般與其他過濾器配合使用
* Filter:KeyOnlyFilter(boolean lenAsVal)
* lenAsVal默認為假,表示不把val的長度作為val。否則val的長度將作為val輸出。
* 鍵過濾器可以簡單的設置過濾的結果集中只包含鍵而忽略值,這里有一個選項可以把結果集的值保存為值的長度
例子:Filter filter = new KeyOnlyFilter(false);
2.6 firstkeyonlyFilter
用法:同上,但僅會返回相同key的第一條kv
2.8 RandomRowFilter
隨即的返回row的數據,構造函數為
RandomRowFilter(float chance)
chance取值為0到1.0,如果<0則為空,如果>1則包含所有的行。
例子:Filter filter=new RandomRowFilter(0.5f)
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
分享題目:HBaseFilter使用方法(二)-創新互聯
轉載注明:http://vcdvsql.cn/article34/cdiise.html
成都網站建設公司_創新互聯,為您提供Google、網站營銷、網站策劃、外貿建站、品牌網站制作、云服務器
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯