hbase查询表设置条件
时间: 2023-08-09 12:06:19 浏览: 79
在HBase中查询表并设置条件可以通过HBase Shell命令或Java API实现。
1. HBase Shell命令
使用scan命令查询表并设置条件,格式为:
```
scan 'table_name', {FILTER=>"FilterString"}
```
其中,table_name为表名,FilterString为过滤条件。
例如,查询表user_info中age字段大于等于18的记录:
```
scan 'user_info', {FILTER=>"SingleColumnValueFilter('info','age',>=,'binary:18')"}
```
2. Java API
使用Java API查询表并设置条件,需要创建一个Scan对象,并设置过滤条件。示例代码如下:
```java
Configuration conf = HBaseConfiguration.create();
Connection conn = ConnectionFactory.createConnection(conf);
Table table = conn.getTable(TableName.valueOf("user_info"));
Scan scan = new Scan();
Filter filter = new SingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("age"), CompareOperator.GREATER_OR_EQUAL, Bytes.toBytes("18"));
scan.setFilter(filter);
ResultScanner scanner = table.getScanner(scan);
for(Result result: scanner){
//处理查询结果
}
scanner.close();
table.close();
conn.close();
```
其中,SingleColumnValueFilter表示单列值过滤器,可以设置列族、列名、比较符和比较值。CompareOperator表示比较符,可以设置为GREATER、GREATER_OR_EQUAL、EQUAL、LESS_OR_EQUAL或LESS等。这里使用的是GREATER_OR_EQUAL,表示大于等于。Bytes.toBytes将字符串转换为字节数组。
阅读全文