Hbase фильтрует столбец со списком значений - PullRequest
1 голос
/ 12 марта 2019

Как я могу передать список значений в SingleColumnFilter для сканирования и запроса hbase?

val ListOfID = List("ID1","ID2",...,"ID15",...,"ID150") 

Я знаю, как фильтровать одно значение:

val IDFilter = new SingleColumnValueFilter(Bytes.toBytes("header"), Bytes.toBytes("ID"), CompareFilter.CompareOp.EQUAL, Bytes.toBytes(String.valueOf(ID)))

Но я бы хотел передать список значений фильтру, потому что мой список содержит более 150 элементов.

Заранее спасибо

1 Ответ

1 голос
/ 12 марта 2019

Вот решение, которое я нашел, с RegexStringComparator оно работает, но я не знаю, насколько это лучше всего:

val ListOfID = List("ID1","ID2",...,"ID15",...,"ID150") 
val IDListString = ListOfID.mkString("|")

val scan = new Scan


val IDFilter = new SingleColumnValueFilter(Bytes.toBytes("header"), Bytes.toBytes("networkIdentifier"), CompareFilter.CompareOp.EQUAL,new RegexStringComparator(IDListString))

val filters = new FilterList(IDFilter)    
scan.setFilter(filters)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...