HBase內建過濾器的總結

2021-08-09 20:42:14 字數 2179 閱讀 1837

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:用於綜合使用多個過濾器

listfilters=new arraylist();filters.add(rf);

filters.add(vf);filterlist fl=?new filterlist(filterlist.operator.must_pass_all,filters);//ok綜合使用多個過濾器,and和or兩種關係

HBase內建過濾器的總結

1 rowfilter 篩選出匹配的所有的行 使用過 eg filter rf new rowfilter comparefilter.compareop.equal,new binarycomparator bytes.tobytes row1 ok篩選出匹配的所有的行 2 prefixfilte...

hbase 過濾器 scala 過濾器系列

過濾器系列710 c30810 賓士 c64 1500 004 09411 04 004094 3504 h12 110 2 w11102 2 wdk724 wdk725 沃爾沃 3825778 8149064 3825133 3825215 466634 11110668 11711074 477...

HBase(七)Hbase過濾器

基礎api中的查詢操作在面對大量資料的時候是非常蒼白的,這裡hbase提供了高階的查詢方法 filter。filter可以根據簇 列 版本等更多的條件來對資料進行過濾,基於hbase本身提供的三維有序 主鍵有序 列有序 版本有序 這些filter可以高效的完成查詢過濾的任務。帶有filter條件的r...