我在扫描时应用限定符过滤器以获取所有读取项目。
QualifierFilter readItems = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("read-1")));
readItems.isFamilyEssential(Bytes.toBytes("meta"));
结果包含读取项目,但不包含其他列族。
结果只包含元列族和read-1限定符。
如何获取所有CF并且只读取项目?
由于
答案 0 :(得分:1)
目前,执行的操作是过滤{KeyValue} _in到{KeyValue} _out,只保留其限定符与约束匹配的KeyValue - 这不是您想要做的。如果限定符“read-1”不存在,您希望过滤掉整行。您可以使用以下逻辑执行此操作(这是在Groovy中,但是,应该有意义)
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
这是一个很好的开始玩参数。我不确定你的'read-1'列中有什么内容,但是,如果它是非null,那么这应该做你想要的(或者让你更接近?)。
祝你好运!