如何更改hbase表扫描结果顺序

t5fffqht  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(511)

我正在尝试将特定数据从一个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很大,所以我想跳到我真正需要的行。谢谢你的帮助。

68de4m5k

68de4m5k1#

您尝试过扫描的.setreversed()属性吗?请记住,在这种情况下,您的起始行必须是rowkey范围的逻辑结尾,从那里开始它将“向上”扫描。

相关问题