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();
}
}
hadoop-HBase-过滤器
最新推荐文章于 2021-12-05 20:24:53 发布