我想表演一个 rows
使用happybase查询一些已知的行键,并添加一个值筛选器,以便只返回与该筛选器匹配的行。
在hbase shell中,可以为get命令提供筛选器,如下所示:
get 'meta', 'someuser', {FILTER => "SingleColumnValueFilter ('cf','gender',=,'regexstring:^male$')"}
在happybase中,您可以向 scan
但我看不到 rows
查询。以下是它的工作原理 scan
:
rows = tab.scan(filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')")
有没有办法进行过滤 rows
使用happybase(或任何其他python hbase客户机库)查询(可能是随机排序的行键)?
我想象它是这样的(但是没有过滤器参数):
rows = tab.rows(rows=['h_key', 'a_key', 'z_key'], filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')")
1条答案
按热度按时间ymzxtsji1#
get with filter等于scan with start/stop row。
在java中,一个
FilterList
合并MultiRowRangeFilter
以及SingleColumnValueFilte
r将完全满足您的需求,这有一个例子。然而,作为
happyhbase
使用hbase-thrift服务,似乎不支持filterlist,所以我认为最好的方法是为示例中的每个键调用上面的过程。