如何获取HBase中的最大rowkey?

时间:2012-07-02 09:05:13

标签: filter hadoop hbase max key-value

如何获取HBase表中的最大rowkey

我有一个有两行的表:

TT-0001 column=cf:col-1, timestamp=1341218075789, value=abc
TT-0002 column=cf:col-1, timestamp=1341218075789, value=abc

我想获得row2(rowkey的maxvalue)。

我如何在Hbase中执行此操作?

2 个答案:

答案 0 :(得分:1)

使用你选择的行键你可以简单地返回ur表的“last”行并打印出行键(因为我假设你只是增加“TT-”后面的数字)。您还可以使用将发出值的KeyOnlyFilter,并且您可以使用自己的方法来检查哪个行键最大。

你应该查看rowkey design,特别是提供链接的第6.3.3节,  因为我不推荐像你生成的行键。如命名部分所述,最新的,最新的行将是第一行。

答案 1 :(得分:1)

HTable类的getRowOrBefore()方法将帮助我们做到这一点。例如,

HTable table=new HTable(conf,"test");
Result result=table.getRowOrBefore(Bytes.toBytes("TT-9999"),Bytes.toBytes("colfam"));
System.out.println(Bytes.toString(result.getRow()));