#java #scala #hbase
#java #scala #hbase
Вопрос:
Как я могу передать список значений в 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:
Вот решение, которое я нашел, с 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)