繁体   English   中英

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

[英]how to change hbase table scan results order

我正在尝试将特定数据从一个 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,并且从那里它会“向上”扫描。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM