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)));
}
}
}
还没有评论,来说两句吧...