我正在尝试将特定数据从一个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*"));
.....
此表很大,所以我希望跳到我实际需要的行。在这里感谢任何帮助。
您是否尝试过Scan的.setReversed()属性?请记住,在这种情况下,您的开始行必须是rowKey范围的逻辑END,然后从那里开始“向上”扫描。