【问题标题】:Hbase filter a column with list of valuesHbase 过滤包含值列表的列
【发布时间】:2019-03-11 22:34:27
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: java scala hbase


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 2013-11-24
      • 2020-07-19
      • 1970-01-01
      相关资源
      最近更新 更多