HBase 比较过滤器

一、行过滤器(RowFilter)

    /**
     * 测试RowFilter过滤器
     */
    @Test
    public void testRowFilter() throws IOException {

        Configuration conf = HBaseConfiguration.create();
        Connection conn = ConnectionFactory.createConnection(conf);
        TableName tname = TableName.valueOf("ns1:t1");
        Scan scan = new Scan();
        RowFilter rowFilter = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("row0003")));
        scan.setFilter(rowFilter);
        Table t = conn.getTable(tname);
        ResultScanner resultScanner = t.getScanner(scan);
        for(Result res :resultScanner){
            System.out.println(Bytes.toString(res.getRow()));
        }
    }

二、列族过滤器(FamilyFilter)

使用过滤器来返回特定的列族

 /**
     * 测试FamilyFilter过滤器
     */
    @Test
    public void testFamilyFilter() throws IOException {

        Configuration conf = HBaseConfiguration.create();
        Connection conn = ConnectionFactory.createConnection(conf);
        TableName tname = TableName.valueOf("ns1:t1");
        Scan scan = new Scan();
        FamilyFilter filter = new FamilyFilter(CompareFilter.CompareOp.LESS_OR_EQUAL, new BinaryComparator(Bytes.toBytes("f1")));
        scan.setFilter(filter);
        Table t = conn.getTable(tname);
        ResultScanner resultScanner = t.getScanner(scan);

        for(Result result:resultScanner){
            System.out.println(result);
        }
    }

三、列名过滤器(QualifierFilter) 


    /**
     * 测试QualifierFilter过滤器
     */
    @Test
    public void testQualifierFilter() throws IOException {

        Configuration conf = HBaseConfiguration.create();
        Connection conn = ConnectionFactory.createConnection(conf);
        TableName tname = TableName.valueOf("ns1:t1");
        Scan scan = new Scan();
        Filter filter = new QualifierFilter(CompareFilter.CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("name")));
        scan.setFilter(filter);
        Table t = conn.getTable(tname);
        ResultScanner resultScanner = t.getScanner(scan);
        for(Result result:resultScanner){
            System.out.println(result);
        }
    }

 

四、值过滤器(ValueFilter)


    /**
     * 测试ValueFilter过滤器
     */
    @Test
    public void testValueFilter() throws IOException {

        Configuration conf = HBaseConfiguration.create();
        Connection conn = ConnectionFactory.createConnection(conf);
        TableName tname = TableName.valueOf("ns1:t1");
        Scan scan = new Scan();
        Filter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("tom111")));
        scan.setFilter(filter);
        Table t = conn.getTable(tname);
        ResultScanner resultScanner = t.getScanner(scan);
        for(Result result:resultScanner){
            for(Cell cell:result.rawCells()){
                System.out.println("cell: " +cell+" ,Value: "+Bytes.toString(CellUtil.cloneValue(cell)));
            }
        }
    }

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值