happybase使用rows函数过滤

7vux5j2d  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(911)

我想表演一个 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$')")
ymzxtsji

ymzxtsji1#

get with filter等于scan with start/stop row。

rows = tab.scan(filter="SingleColumnValueFilter('cf','gender',=,'regexstring:^male$')",
                     row_start="someuser", row_stop="someuser")

在java中,一个 FilterList 合并 MultiRowRangeFilter 以及 SingleColumnValueFilte r将完全满足您的需求,这有一个例子。
然而,作为 happyhbase 使用hbase-thrift服务,似乎不支持filterlist,所以我认为最好的方法是为示例中的每个键调用上面的过程。

相关问题