簡體   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