我正在尝试将特定数据从一个hbase表复制到另一个hbase表,这需要仅扫描表中的行键并从中解析特定值。它工作得很好,但我注意到结果似乎是按升序返回的&在本例中是按字母顺序返回的。有没有一种方法可以指定相反的顺序或者插入时间戳?
Scan scan = new Scan();
scan.setMaxResultSize(1000);
scan.setFilter(new FirstKeyOnlyFilter());
ResultScanner scanner = TestHbaseTable.getScanner(scan);
for(Result r : scanner){
System.out.println(Bytes.toString(r.getRow()));
String rowKey = Bytes.toString(r.getRow());
if(rowKey.startsWith("dm.") || rowKey.startsWith("bk.") || rowKey.startsWith("rt.")) {
continue;
} else if(rowKey.startsWith("yt")) {
List<String> ytresult = Arrays.asList(rowKey.split("\\s*.\\s*"));
.....
这张table很大,所以我想跳到我真正需要的行。谢谢你的帮助。
1条答案
按热度按时间68de4m5k1#
您尝试过扫描的.setreversed()属性吗?请记住,在这种情况下,您的起始行必须是rowkey范围的逻辑结尾,从那里开始它将“向上”扫描。