我们有 hbase 表,我需要扫描它。我必须找到一个特定列具有精确值并且存在具有精确前缀的另一列的所有行。就像是:
SingleColumnValueFilter filterA =
new SingleColumnValueFilter(COLUMN_FAMILY, COLUMN_1, CompareFilter.CompareOp.EQUAL, Bytes.toBytes(2L));
Filter filterB = new ColumnPrefixFilter(COLUMN_2_PREFIX);
FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
filterList.addFilter(filterA);
filterList.addFilter(filterB);
Scan scan = new Scan();
scan.setFilter(filterList);
单独的过滤器工作完美。filterA
返回COLUMN_1
具有值的行2L
。filterB
返回COLUMN_2
存在的行。但是他们在一起什么都没有。那么我可以将这些过滤器组合在一起吗?还是我做错了什么?
具有相同条件的第二个问题:我可以使用ColumnPrefixFilter
并获取所有列。我的意思是找到COLUMN_2
存在的行并获取所有其他列?