HBase Scan Filter - пропускает строки без обязательных столбцов - PullRequest
1 голос
/ 07 марта 2012

Я пытаюсь установить фильтр на моем объекте HBase Scan, который пропускает строки, в которых не заполнены необходимые столбцы. Я полагаю, что сначала я должен использовать фильтр пропуска, но затем я озадачен.Я не вижу в сводке пакета ничего о том, присутствует столбец или нет.

Должен ли я использовать фильтр значений столбца и проверить, являются ли столбцы в вопросе нулевыми илипустой?И почему фильтры возвращают столбцы (например, ColumnCountGetFilter)?Есть ли какое-нибудь руководство или что-то, на что кто-то мог бы указать мне, чтобы узнать больше о Фильтрах, которые не являются просто коллекцией javadocs?

1 Ответ

2 голосов
/ 11 марта 2012

Вы можете посмотреть исходные коды пакета фильтра.

Например, исходный код 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 содержит хорошие примеры.Вы можете пройти через них и написать свой собственный.

...