HBase內置過濾器的總結


1、RowFilter:篩選出匹配的所有的行(使用過)
eg:Filter rf=new RowFilter(CompareFilter.CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("row1")));//OK篩選出匹配的所有的行


2、PrefixFilter:篩選出具有特定前綴的行健的數據
Filter pf=new PrefixFilter(Bytes.toBytes("row"));//OK篩選匹配行鍵的前綴成功的行


3、KeyOnlyFilter:只返回每行的行健
Filter kof=new KeyOnlyFilter();//OK 返回所有的行,但值全是空


4、RandomRowFilter:按照一定的幾率來返回隨機的結果集
Filter rrf=new RandomRowFilter((float) 0.8);//OK隨機選出一部分的行


5、InclusiveStopFilter:掃描的時候,我們可以設置一個開始行鍵和一個終止行鍵,默認情況下,這個行鍵的返回是前閉后開區間,即包含起始行,但不包含終止行,如果我們想要同時包含起始行和終止行
Filter isf=new InclusiveStopFilter(Bytes.toBytes("row1"));//OK包含了掃描的上限在結果之內


6、FirsterKeyOnlyFilter:返回的結果集中只包含第一列的數據它在找到每行的第一列之后會停止掃描
Filter fkof=new FirstKeyOnlyFilter();//OK?篩選出第一個每個第一個單元格


7、ColumnsPrefixFilter:按照列名的前綴來篩選單元格,如果我們想要對返回的列的前綴加以限制的話,可以使用這個過濾器
Filter cpf=new ColumnPrefixFilter(Bytes.toBytes("qual1"));//OK篩選出前綴匹配的列


8、ValueFilter:按照具體的值來篩選單元格
Filter vf=new ValueFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("ROW2_QUAL1"));//OK篩選某個(值的條件滿足的)特定的單元格


9、ColumnsCountGetFilter:這個過濾器來返回每行最多返回多少列,並在遇到一行的列數超過我們所設置的限制值的時候,結束掃描操作
Filter ccf=new ColumnCountGetFilter(2);//OK如果突然發現一行中的列數超過設定的最大值時,整個掃描操作會停止


10、SingleColumnValueFilter:用一列的值決定這一行的數據是否被過濾
SingleColumnValueFilter scvf=new SingleColumnValueFilter(
Bytes.toBytes("colfam1"),
Bytes.toBytes("qual2"),CompareFilter.CompareOp.NOT_EQUAL,new SubstringComparator("BOGUS"));
scvf.setFilterIfMissing(false);
scvf.setLatestVersionOnly(true);//OK


11、SingColumnValueExcludeFilter:這個與10種的過濾器唯一的區別就是,作為篩選條件的列的不會包含在返回的結果中。


12、SkipFilter:這是一種附加過濾器,其與ValueFilter結合使用,如果發現一行中的某一列不符合條件,那么整行就會被過濾掉
Filter skf=new SkipFilter(vf);//OK發現某一行中的一列需要過濾時,整個行就會被過濾掉


13、WhileMatchFilter:如果你想要在遇到某種條件數據之前的數據時,就可以使用這個過濾器;當遇到不符合設定條件的數據的時候,整個掃描也就結束了
Filter wmf=new WhileMatchFilter(rf);//OK類似於Pythonitertools中的takewhile


14、FilterList:用於綜合使用多個過濾器(使用過)
List<Filter>filters=new ArrayList<Filter>();filters.add(rf);
filters.add(vf);FilterList fl=?new FilterList(FilterList.Operator.MUST_PASS_ALL,filters);//OK綜合使用多個過濾器,AND和OR兩種關系

參考轉載原文:https://blog.csdn.net/mercy007/article/details/78352033


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM