0

像这样的场景:在一个hbase表中,不同的行有不同的列,例如:row1有列fm:a、fm:b、fm:c row2有列fm:a、fm:d

所以我想用一个scan来测试一行是否同时有fm:a & fm:b列,如果有,则返回这一行,否则,扫描结果中不应该返回这一行。在上述情况下,我只想返回 row1。

我检查了 hbase 中的过滤器,看起来如果在过滤器级别这样做,性能会很差。有任何想法吗?

4

1 回答 1

0

您需要将每一列添加到扫描中 - 像这样。创建一个 hashTable ,比如说 ht

for each columnFamily in ht:
   { for each column in columnFamily:
     { scan.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column)); }
   }
于 2012-05-22T22:44:20.130 回答