繁体   English   中英

Hbase 过滤带有值列表的列

[英]Hbase filter a column with list of values

如何将值列表传递给 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 多个元素。

提前致谢

这是我找到的一个解决方案,使用 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM