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

问题描述 投票:0回答:1

我正在尝试将特定数据从一个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*"));

               .....

此表很大,所以我希望跳到我实际需要的行。在这里感谢任何帮助。

hadoop hbase scanning
1个回答
1
投票

您是否尝试过Scan的.setReversed()属性?请记住,在这种情况下,您的开始行必须是rowKey范围的逻辑END,然后从那里开始“向上”扫描。

© www.soinside.com 2019 - 2024. All rights reserved.