zoukankan      html  css  js  c++  java
  • hbase 多个过滤器组合(列表)

    使用FilterList要保证过滤器的顺序需要使用List<Filter>

     private static void mutilFilterData() throws IOException{
            Table table = helper.getConnection().getTable(TableName.valueOf("testtable"));
    
            List<Filter> filters = new ArrayList<Filter>();
    
            Filter filter1 = new RowFilter(CompareOperator.GREATER_OR_EQUAL,
                    new BinaryComparator(Bytes.toBytes("rowKey60")));
            filters.add(filter1);
    
            Filter filter2 = new RowFilter(CompareOperator.LESS_OR_EQUAL,
                    new BinaryComparator(Bytes.toBytes("rowKey69")));
            filters.add(filter2);
    
            Filter filter3 = new QualifierFilter(CompareOperator.EQUAL,
                    new RegexStringComparator("username"));
            filters.add(filter3);
    
            FilterList filterList1 = new FilterList(FilterList.Operator.MUST_PASS_ALL,filters);
    
            Scan scan = new Scan();
            scan.setFilter(filterList1);
            ResultScanner scanner1 = table.getScanner(scan);
            System.out.println("Results of scan #1 - MUST_PASS_ALL:");
            int n = 0;
            for (Result result : scanner1) {
                for (Cell cell : result.rawCells()) {
                    System.out.println("Cell: " + cell + ", Value: " +
                            Bytes.toString(cell.getValueArray(), cell.getValueOffset(),
                                    cell.getValueLength()));
                    n++;
                }
            }
            scanner1.close();
            table.close();
    
        }

    输出结果:

    Cell: rowKey60/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user60
    Cell: rowKey61/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user61
    Cell: rowKey62/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user62
    Cell: rowKey63/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user63
    Cell: rowKey64/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user64
    Cell: rowKey65/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user65
    Cell: rowKey66/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user66
    Cell: rowKey67/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user67
    Cell: rowKey68/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user68
    Cell: rowKey69/info:username/1555078771906/Put/vlen=6/seqid=0, Value: user69
  • 相关阅读:
    python学习-10 运算符1
    python学习-9 pycharm的安装
    python学习-8 用户有三次机会登陆
    python学习-7 条件语句 while循环 + 练习题
    python学习-6 猜拳小游戏
    python学习-5 python基础-2 条件语句(if的简单用法2---elif)
    python学习-4 python基础-2 条件语句(if的简单用法1)
    python学习-3 python基础-1基础知识和解释器
    RaspBerry--解决无法用 ssh 直接以 root 用户登录
    NetWork--HTTPS 原理解析<转>
  • 原文地址:https://www.cnblogs.com/asker009/p/10703134.html
Copyright © 2011-2022 走看看