hbase singlecolumnvaluefilter在列不存在时返回原始值

dw1jzc5e  于 2021-06-07  发布在  Hbase
关注(0)|答案(1)|浏览(546)

我有一个hbase表,其中包含一些行 col1 但对于其他人来说,它不是。这意味着不是所有的行都有 col1 限定符。我要过滤 col1 值的限定符 dog .
我正在使用 SingleColumnValueFilter :

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

我观察到一种奇怪的行为 SingleColumnValueFilter 当我得到结果的时候。它不仅返回筛选的结果,而且还返回限定符所对应的行 col1 不存在。
有人遇到过同样的问题吗?如何解决?

y0u0uwnf

y0u0uwnf1#

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>

相关问题