簡體   English   中英

Accumulo - 獲取正確排序的掃描儀結果

[英]Accumulo - Getting a properly sorted Scanner result

有沒有辦法對從掃描儀獲得的條目進行排序? 我遇到的問題是我有后綴索引來減輕重復的行ID,當我掃描時,我沒有得到完全升序的有序列表。 例如,我得到的內容如下所示:

RowId: 2013-08-05 15:29:45.872        Value: 0
RowId: 2013-08-05 15:29:45.879        Value: 1
RowId: 2013-08-05 15:29:45.88         Value: 2
RowId: 2013-08-05 15:29:45.881        Value: 11 
//The previous should be the following:
RowId: 2013-08-05 15:29:45.88_a       Value: 3

正如你所看到的.881> .88然后正確的行被放置了大約30個條目。 有沒有辦法覆蓋排序或是否有方便的方法來獲得正確排序的掃描儀?

Accumulo中的條目按字典順序排序。 在ASCII中,'1'在'_'之前排序,這就是為什么你在'88_a'之前有'881'的原因。 當您嘗試在Accumulo中保留數字排序時,一種方法是使用零將數字填充到固定長度。 如果您擁有的最大數字是999,那么您將使所有數字長3個字符,因此'8'將變為'008'而'88'將變為'088'。

正如Billie所說,Accumulo對詞典進行排序。 GitHub上有一個名為Orderly的項目 ,您可能想要查看

該項目將各種簡單和復雜的密鑰數據類型序列化為排序順序保留字節編碼。 對序列化字節數組進行排序會產生與基礎數據類型的自然排序順序相同的順序

不幸的是,它在6個月內沒有更新。 這是一個有趣的概念。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM