更新:这只发生在 Google Cloud Bigtable Emulator 上,而不是实际开发或生产 BigTable 实例(Google Cloud SDK 149.0.0)
我正在尝试通过键正则表达式过滤器进行行过滤,一切都像魅力一样工作(按前缀过滤,按键开始和停止范围过滤,按键,按键),但我无法让它通过RowKeyRegexFilter
as过滤器,它只是将所有键作为空键返回scan
:
# all the boilerplate to create a happybase connection skipped
t = connection.table("sometable")
t.put(
b'row1',
{
b"family1:col2": b".1",
b"family2:col2": b".12",
}
)
t.put(
b'row2',
{
b"family1:col2": b".2",
b"family2:col2": b".22",
}
)
t.put(
b'row3',
{
b"family1:col2": b".3",
b"family2:col2": b".32",
}
)
rows = t.scan(
filter=RowKeyRegexFilter(b'.+3')
)
print(len([i for i in rows])
这总是给出3
,无论您是否使用(nomatchforsure)+
正则表达式,我都找不到任何带有工作示例的文档,最令人惊奇的是,google.cloud.happybase.table.Table.rows
它总是按行键执行过滤器RowKeyRegexFilter
,但是将正则表达式传递给rows
方法而不是真正的行键'也不给正则表达式过滤,你可以看到它
对此的任何帮助将不胜感激