Python 使用rows函数进行Happybase过滤

Python 使用rows函数进行Happybase过滤,python,hbase,happybase,Python,Hbase,Happybase,我想用Happybase对一些已知的行键执行rows查询,并添加一个值过滤器,以便只返回与过滤器匹配的行 在HBase shell中,您可以为get命令提供筛选器,如下所示: get 'meta', 'someuser', {FILTER => "SingleColumnValueFilter ('cf','gender',=,'regexstring:^male$')"} 在Happybase中,您可以向scan命令添加过滤器,但在rows查询中,我看不到该选项。以下是它在扫描中的工作

我想用Happybase对一些已知的行键执行
rows
查询,并添加一个值过滤器,以便只返回与过滤器匹配的行

在HBase shell中,您可以为get命令提供筛选器,如下所示:

get 'meta', 'someuser', {FILTER => "SingleColumnValueFilter ('cf','gender',=,'regexstring:^male$')"}
在Happybase中,您可以向
scan
命令添加过滤器,但在
rows
查询中,我看不到该选项。以下是它在
扫描中的工作原理:

rows = tab.scan(filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')")
有没有一种方法可以使用Happybase(或任何其他Python HBase客户端库)执行过滤的
查询(对于可能随机排序的行键)

我想象它是这样的(但没有过滤器参数):


使用筛选器获取等于使用开始/停止行扫描。

rows = tab.scan(filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')",
                     row_start="someuser", row_stop="someuser")
在Java中,
FilterList
组合的
MultiRowRangeFilter
SingleColumnValueFilte
r将完美地满足您的需求,对此有一个明确的定义


但是,由于
happyhbase
使用了Hbase节俭服务,而且它似乎是FilterList,因此我认为您能得到的最好方法是为示例中的每个键调用上述过程。

经过思考,我在问题中遗漏了一些内容,我将对其进行编辑。我要执行的查询是对一组随机排列的行键进行的
查询。我不能使用行键范围,因为顺序未知。@dsimmie更新答案,我认为当前的
happybase
版本没有完美的解决方案。
rows = tab.scan(filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')",
                     row_start="someuser", row_stop="someuser")