我们需要扫描HBase表,搜索在限定符与特定模式匹配的列上具有特定值的行。
我们正在设置一个这样的过滤器:
new FilterList(MUST_PASS_ALL,
new FamilyFilter(EQUAL, new BinaryComparator(bytes(someFamily))),
new QualifierFilter(EQUAL, new RegexStringComparator(qualifierRegex)),
new ValueFilter(EQUAL, new SubstringComparator(detailValue)))
当在扫描中执行时,它与我们在列和&我们正在寻找的值,但Scanner返回的结果只包含匹配的列/值,我们需要包含所有列的完整行。
我们已经尝试了很多与SkipFilter的组合(工厂HBase提供的唯一过滤器似乎会影响基于另一个过滤器的完整行),但无法找到正确的答案。
当然,我们可以为我们的案例制作一个自定义过滤器,但我们正在努力避免将“将jar部署到所有regionservers并重新启动hbase集群”向生产运营团队发送指令。
答案 0 :(得分:1)
请尝试SingleColumnValueFilter
:
https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/filter/SingleColumnValueFilter.html