MapReduce服务 MRS-使用HBase过滤器Filter:代码样例

时间:2025-02-12 14:58:43

代码样例

以下代码片段在com.huawei.bigdata.hbase.examples包的“HBaseExample”类的testFilterList方法中。

样例代码获取方式请参考获取 MRS 应用开发样例工程

代码样例:

public void testFilterList() {     LOG .info("Entering testFilterList.");    Table table = null;    // Instantiate a ResultScanner object.    ResultScanner rScanner = null;    try {        // Create the Configuration instance.        table = conn.getTable(tableName);        // Instantiate a Get object.        Scan scan = new Scan();        scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"));        // Instantiate a FilterList object in which filters have "and"        // relationship with each other.        FilterList list = new FilterList(Operator.MUST_PASS_ALL);        // Obtain data with age of greater than or equal to 20.         list.addFilter(new SingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("age"),                CompareOp.GREATER_OR_EQUAL, Bytes.toBytes(new Long(20))));        // Obtain data with age of less than or equal to 29.        list.addFilter(new SingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("age"),                CompareOp.LESS_OR_EQUAL, Bytes.toBytes(new Long(29))));        scan.setFilter(list);        // Submit a scan request.        rScanner = table.getScanner(scan);        // Print query results.        for (Result r = rScanner.next(); r != null; r = rScanner.next()) {            for (Cell cell : r.rawCells()) {                LOG.info(Bytes.toString(CellUtil.cloneRow(cell)) + ":"                        + Bytes.toString(CellUtil.cloneFamily(cell)) + ","                        + Bytes.toString(CellUtil.cloneQualifier(cell)) + ","                        + Bytes.toString(CellUtil.cloneValue(cell)));            }        }        LOG.info("Filter list successfully.");    } catch (IOException e) {        LOG.error("Filter list failed ", e);    } finally {        if (rScanner != null) {            // Close the scanner object.            rScanner.close();        }        if (table != null) {            try {                // Close the HTable object.                table.close();            } catch (IOException e) {                LOG.error("Close table failed ", e);            }        }    }    LOG.info("Exiting testFilterList.");}
support.huaweicloud.com/devg-mrs/mrs_06_0025.html