hbase限定符筛选器跳过其他列族

hbase限定符筛选器跳过其他列族,hbase,Hbase,我正在扫描时应用限定符过滤器以获取所有已读项目 QualifierFilter readItems = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("read-1"))); readItems.isFamilyEssential(Bytes.toBytes("meta")); 结果包含读取项,但不包含其他列族 结果仅包含元列族和read-1限定符 如何获取所有CFs和只读项 多亏了当前,执行的操

我正在扫描时应用限定符过滤器以获取所有已读项目

QualifierFilter readItems = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("read-1")));
readItems.isFamilyEssential(Bytes.toBytes("meta"));
结果包含读取项,但不包含其他列族

结果仅包含元列族和read-1限定符

如何获取所有CFs和只读项


多亏了

当前,执行的操作是通过仅保留其限定符与约束匹配的KeyValue来将{KeyValue}u in过滤为{KeyValue}u out-这不是您想要做的。如果限定符“read-1”不存在,则要过滤掉整行。您可以使用以下逻辑实现这一点(这是Groovy中的逻辑,但是应该是有意义的)

这是一个很好的开始,可以使用参数。我不确定您的“read-1”列中有什么内容,但是,如果它是非空的,那么它应该满足您的需要(或者让您更接近?)


祝你好运

是否有什么东西只检查限定符而不是itI中的实际值,我已经看过并尝试过了,但从来没有发现任何有用的东西(我花了很多时间在它上面)。。。是的,我不知道-但是-我不这么认为…只检查限定符将是有效的,因为它们在内部保持排序。所以我想我必须实现我自己的过滤器来做到这一点。
def scan = new Scan()
scan.addFamily('COLUMN_FAMILY'.bytes)

def filter = new SingleColumnValueFilter('COLUMN_FAMILY'.bytes, 'read-1'.bytes, CompareFilter.CompareOp.NOT_EQUAL, new NullComparator())
filter.filterIfMissing = true
scan.filter = filter