zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    RequireJS进阶(二)
    JavaScript判断元素为数字的奇异写法
    RequireJS进阶(三)
    RequireJS进阶(一)
    读Ext之十四(Ext元素)
    JavaScript中__proto__与prototype的关系
    工作流术语
    一个例子(Hello World)
    无题
    再谈调用子流程(1)
  • 原文地址:https://www.cnblogs.com/kaiwen03/p/9848037.html
Copyright © 2011-2022 走看看