我有一些与每一行相关的不同 ID:比如 10011002 。这些 ID 中的每一个都有一组相似的属性。

所以我的想法是拥有一个带有列限定符的列族('cf'):

cf:1001-attribute1 -> 'value a'
cf:1001-attribute2 -> 'value b'
cf:1001-attribute3 -> 'value c'
cf:1002-attribute1 -> 'value d'
cf:1002-attribute2 -> 'value e'
cf:1002-attribute3 -> 'value f'

我是否能够扫描:行(x)、列族(cf)、列(1001*),以便在这种情况下获取 1001 的所有属性的映射?

显然我可以对行键执行此操作,我不确定列限定符是否相同。

最佳答案

您可以使用 ColumnPrefixFilter

HTableInterface t = ...;
byte[] prefix = Bytes.toBytes("1001");
Scan scan = new Scan()
Filter f = new ColumnPrefixFilter(prefix);
scan.setFilter(f);
scan.setBatch(20); // set this if there could be many columns returned
ResultScanner rs = t.getScanner(scan);
for (Result r = rs.next(); r != null; r = rs.next()) {
  for (KeyValue kv : r.raw()) {
    // each kv represents a column
  }
}
rs.close();

关于HBase:扫描列限定符 - 有可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12511557/

10-13 06:13