Hbase SingleColumnValueFilter return raw 如果列不存在

Hbase SingleColumnValueFilter return raw if column doesn't exists

我有一个 Hbase table,它有一些行 col1 限定符,而其余的则没有。这意味着并非所有行都有 col1 限定符。我想在值 dog.

上过滤 col1 限定符

我正在使用 SingleColumnValueFilter:

<Scanner batch="300">
<filter>
    { 
         "type":"SingleColumnValueFilter",
         "op":"EQUAL",
         "family":"YW5pbWFs",
         "qualifier":"Y29sMQ==",
         "latestVersion":true,
         "comparator":{ 
            "type":"BinaryComparator",
            "value":"ZG9n"
         }
      }
</filter>
</Scanner>

我在获取结果时观察到 SingleColumnValueFilter 的奇怪行为。它 returns 不仅过滤结果而且 returns 限定符 col1 不存在的行。

有人遇到过同样的问题吗?如何解决?

ifMissing参数是一个解决方案。

似乎 SingleColumnValueFilter 默认情况下不会对缺少限定符的行应用过滤器。可以通过 ifMissing 参数启用缺失行过滤。

<Scanner batch="300">
<filter>
    { 
         "type":"SingleColumnValueFilter",
         "op":"EQUAL",
         "family":"YW5pbWFs",
         "qualifier":"Y29sMQ==",
         "latestVersion":true,
         "ifMissing": true,
         "comparator":{ 
            "type":"BinaryComparator",
            "value":"ZG9n"
         }
      }
</filter>
</Scanner>