小编Hen*_*rik的帖子

如何将几个QualifierFilter应用于HBase中的一行

我们想用两个QualifierFilters过滤HBase表上的扫描.意味着我们只希望获得表格的行,这些行具有某个列'col_A' (!)某个其他列'col_B'.

我们目前的方法如下:

FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ALL);
Filter filter1 = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator("col_A".getBytes()));
filterList.addFilter(filter1);
Filter filter2 = new QualifierFilter(CompareOp.EQUAL, new BinaryComparator("col_B".getBytes()));
filterList.addFilter(filter2);

Scan scan = new Scan();
scan.setFilter(filterList);
... 
Run Code Online (Sandbox Code Playgroud)

尽管HBase表中有多行同时包含列'col_A'和'col_B',但ResultScanner不会返回此扫描的任何结果.

如果我们只将scan1应用于扫描,一切正常,我们会得到所有'col_A'的行.如果我们只将filter2应用于扫描,则它是相同的.我们确实获得了所有包含'col_B'的行.

只有当我们合并这两个过滤器时,我们才会得到任何结果.

只有从表中获得col_A AND col_B的行的正确方法是什么?

hbase filter database-scan

7
推荐指数
1
解决办法
6643
查看次数

标签 统计

database-scan ×1

filter ×1

hbase ×1