HBase 比较过滤器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yulei_qq/article/details/82258260

一、行过滤器(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)));
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/yulei_qq/article/details/82258260