hadoop-HBase-过滤器

来源:互联网 发布:js中for in循环 编辑:程序博客网 时间:2024/05/17 22:37
package test.hbase.inaction.example4_8;import org.apache.hadoop.hbase.KeyValue;import org.apache.hadoop.hbase.client.HTableInterface;import org.apache.hadoop.hbase.client.HTablePool;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.filter.BinaryComparator;import org.apache.hadoop.hbase.filter.CompareFilter;import org.apache.hadoop.hbase.filter.Filter;import org.apache.hadoop.hbase.filter.FilterList;import org.apache.hadoop.hbase.filter.PrefixFilter;import org.apache.hadoop.hbase.filter.QualifierFilter;import org.apache.hadoop.hbase.filter.SubstringComparator;import org.apache.hadoop.hbase.filter.ValueFilter;import org.apache.hadoop.hbase.util.Bytes;import test.hbase.inaction.example2_4.UsersDAO;public class UsersFilter {private static HTablePool pool = new HTablePool();private static HTableInterface table = pool.getTable(UsersDAO.TABLE_NAME);public static void main(String[] args) throws Exception {prefixFilter("id03");qualifyFilter("email");valueFilter("yyy");valueFilterList("test", "gmail");table.close();pool.close();}/** * 前缀过滤器 *  * @param prefix * @throws Exception */public static void prefixFilter(String prefix) throws Exception {Scan scan = new Scan(prefix.getBytes());scan.setFilter(new PrefixFilter(prefix.getBytes()));ResultScanner rs = table.getScanner(scan);printResultScanner(rs);}public static void qualifyFilter(String qual) throws Exception {Scan scan = new Scan();Filter filter = new QualifierFilter(CompareFilter.CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes(qual)));scan.setFilter(filter);ResultScanner rs = table.getScanner(scan);printResultScanner(rs);}public static void valueFilter(String value) throws Exception {Scan scan = new Scan();Filter filter = new ValueFilter(CompareFilter.CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes(value)));scan.setFilter(filter);ResultScanner rs = table.getScanner(scan);printResultScanner(rs);}public static void valueFilterList(String value1, String value2) throws Exception {Scan scan = new Scan();Filter filter1 = new ValueFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator(value1));Filter filter2 = new ValueFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator(value2));FilterList fList = new FilterList();fList.addFilter(filter1);fList.addFilter(filter2);scan.setFilter(fList);ResultScanner rs = table.getScanner(scan);printResultScanner(rs);}public static void printResultScanner(ResultScanner rs) {for (Result r : rs) {System.out.print(Bytes.toString(r.getRow()) + "    ");for (KeyValue kv : r.list()) {System.out.print(Bytes.toString(kv.getFamily()) + ":");System.out.print(Bytes.toString(kv.getQualifier()) + "=");System.out.print(Bytes.toString(kv.getValue()) + "    ");}System.out.println();}System.out.println();}}

0 0
原创粉丝点击