ColumnPrefixFilter для сканирования Hbase - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть таблица Hbase с перечисленными ниже семействами столбцов и определителями:

maindata
content:master:909
content:master:899
content:master:97832
content:master:9902222
content:master:9
.
.
.
content:master:223343453

Мне нужно добавить фильтр к объекту Hbase Scan в моем классе Spark Java, чтобы получать только содержимое: master: любое количество столбцов. Что-то вроде:

    Scan scan = new Scan();
    scan.addColumn(Bytes.toBytes("content"),Bytes.toBytes("master:[ *[^0-9]. *]"));

Так что я получаю только контент: master: anynumber столбцы. Scan поддерживает такой шаблон?

1 Ответ

1 голос
/ 23 апреля 2020
  byte[][] prefixes = new byte[][] {Bytes.toBytes("master:")};
  Filter filter = new MultipleColumnPrefixFilter(prefixes);

  Scan scan = new Scan();
  scan.addFamily(Bytes.toBytes("content"));
  scan.setFilter(filter);

Благодаря Hbase MultipleColumnPrefixFilter.

...