我正在尝试在我的HBase Scan对象上放置一个过滤器,该过滤器会跳过没有填写必要列的行。我想我应该首先使用跳过过滤器,但后来我感到难过。我没有在package summary中看到有关列是否存在的任何内容。
我应该使用列值过滤器,并检查有问题的列是否为空或空白?为什么过滤器会返回列(例如ColumnCountGetFilter)?是否有指南或某些人可以指向我的更多有关过滤器的信息,而不仅仅是javadocs的集合?
答案 0 :(得分:2)
您可以查看过滤器包的源代码。
e.g。如果查看以下代码,ColumnCountGetFilter的源代码很短,
@Override
public boolean filterAllRemaining() {
return this.count > this.limit;
}
@Override
public ReturnCode filterKeyValue(KeyValue v) {
this.count++;
return filterAllRemaining() ? ReturnCode.SKIP: ReturnCode.INCLUDE;
}
您应该了解过滤器实现返回ReturnCode.SKIP或ReturnCode.INCLUDE,它们不会直接返回colmns。它们返回标志以告知是否应将KeyValues返回给客户端。
您可能需要实现自定义过滤器,HBase过滤器包中包含良好的样本。你可以通过它们自己编写。