当前位置: 首页 > 知识库问答 >
问题:

如何在HBASE中过滤列上的键值数组?

申宜
2023-03-14

我的Hbase表有一列,其中包含键值对数组。

ROW1 , CF1, DATA_COLUMN : {KEY1:VALUE, KEY2:VALUE, KEY3:VALUE }
ROW2 , CF1, DATA_COLUMN : {KEY1:VALUE}
ROW3 , CF1, DATA_COLUMN : {KEY1:VALUE, KEY5:VALUE}
ROW4 , CF1, DATA_COLUMN : {KEY8:VALUE} <--- Only needed row with KEY8 value set

共有1个答案

夏高朗
2023-03-14

使用SingleColumnValueFilterSubstringComparator:

    SingleColumnValueFilter singleColumnValueFilter = new SingleColumnValueFilter(
            Bytes.toBytes("CF1"),
            Bytes.toBytes("DATA_COLUMN"),
            CompareFilter.CompareOp.EQUAL,
            new SubstringComparator("KEY8")
    );
    Scan scan = new Scan();
    scan.setFilter(singleColumnValueFilter);
    ResultScanner resultScanner = table.getScanner(scan);

如果需要更精确地执行(例如,如果示例中的包含key8,则会出现意外结果),则需要自己构建一个自定义过滤器。

 类似资料:
  • 问题内容: 我有一个数组模型如下: 现在我有了一个Empid的数组。 所以现在我需要过滤第一个包含第二个中所有键的数组。 输出: 我可以使用循环进行此操作,但是由于我的模型对象中有100多个记录。我需要如何更好地处理此问题的建议。 我正在考虑创建一个自定义过滤器,但是您对此有何看法(如果可以,请提供示例代码来实现此目的)。 感谢您的帮助。 谢谢。 问题答案: 你可以做到这一点, 如果返回一个值,则

  • 问题内容: 这是我的表(简体,仅重要的列): 以及一些样本数据: 我想选择键下任意位置的行。像这样的东西: 数据完全像样本中一样嵌套(仅一层)。 当前,我们正在使用PostgreSQL 9.3.5。 在PostgreSQL 9.3中可以吗?也许是9.4? 问题答案: 您的查询已关闭。 是关键功能。还是为了。进行了一些改进: 旧的sqlfiddle db <> fiddle在这里 已经返回该值作为数

  • 问题内容: 我正在尝试做类似的事情: AngularJs部分: 但是不知何故,它向我展示了所有物品。如何筛选(键,值)? 问题答案: Angular 过滤器只能通过angular的API应用于数组,而不能应用于对象- “从数组中选择项的子集,并将其作为新数组返回。” 您在此处有两个选择: 1)移至数组或 -2)预过滤项目,如下所示: 并在控制器上: jsfiddle :http : //jsfid

  • 行列+单元格 001_1454578003995 column=hd:abc,时间戳=1454578173766,值=2 001_1454578003996 column=hd:def,timestamp=1454578173766,value=2 002_1454578003997 Column=HD:IJK,时间戳=1454578173766,值=2 你能帮我做这个吗?

  • 问题内容: 我有一个: 我可以过滤库存编号‘600809’如下的行: 我想将一些股票的所有行汇总在一起,例如[‘600809’,‘600141’,‘600329’]。这意味着我想要这样的语法: 由于大熊猫不接受上述命令,如何实现目标? 问题答案: 使用isin方法。 。