我使用的是SingleColumnValueFilter,scan,getScanner,并从hbase表中检索值。产生的值在行Id-vise中排序。但是我希望结果能够在价值观中被分类。
实施例:
Hbase Table:
RowId | col1:amount | col1:balance
1 5000 1000
2 3000 1500
3 4000 500
现在,当我在Web UI(我自定义)中选择金额时。 然后,结果应按金额分类。
Expected Result after chosen amount column:
RowId | **col1:amount** | col1:balance
2 3000 1500
3 4000 500
1 5000 1000
答案 0 :(得分:3)
如果你想明智地对事物进行排序 - 遗憾的是,HBase不会发生这种情况。 HBase按行键对数据进行排序,按字典顺序排序。
您需要做的是创建一个二级索引,其中rowKey包含该值。在您的情况下,值是数字,因此您必须对数字进行填零以使字典排序正常工作。
以下是您构建二级索引的方法:
Hbase Table:
RowId | col1:amount | col1:balance
val000500 rowID 3
val001000 rowID 1
val001500 rodID 2
获取二级索引时,它将返回原始数据的行ID。使用该行ID从原始记录中获取其余数据。