2012-07-02 77 views
0

HY,SingleColumnValueFilter對結果沒有任何影響

這個問題是非常相似SingleColumnValueFilter not returning proper number of rows

我使用四個SingleColumnValueFilter的w /運算符EQUAL,並將它們添加到運算符爲MUST_PASS_ONE的FilterList。結果的數量與設置FilterList的w/o相同。要比較的值是一個字節[],應該是正確的,因爲我只是存儲以前結果中的值。 (它是一個IP地址,我轉換爲InetAddress,新InetAddress(值爲字節[]),當檢索數據時,對於描述的查詢,我只是調用InetAddress.getAddress返回一個字節[])

你有什麼想法可能是什麼問題?我是否使用過濾器錯誤?

編輯:

我也使用查詢用作SingleColumnValueFilter值檢索到的原始值,並且有一個在結果沒有差別,因此,字節[]的內容不能是問題所在。

回答

0

我想我可以自己給出答案,抱歉沒有調試和檢查所有的hbase代碼。

我剛剛檢查了比較算法(按字典順序)的實現,因此我意識到長度沒有考慮到,儘管我認爲它會填滿w /零;不幸的是,它不是。

唯一合理的選擇是創建一個自定義的比較(例如,見How do you use a custom comparator with SingleColumnValueFilter on HBase?

+0

對不起,這沒有任何意義,我(我想我做的不夠有關HBase的)。辭典比較如何影響EQUALS?我可以看到它的影響,LESS,GREATER(特別是如果你比較字符串版本的數字),但它應該不會對等於...的影響,請你解釋一下嗎? – hba

+0

我有兩個不同長度的字節[]。我調試了代碼,發現比較算法在達到較短的長度時返回,忽略了較長字節[]的其餘部分,就好像它不在那裏一樣。並且返回的值不是預期值(應該是'false'),我希望我沒有記錯。 (如果我沒有弄錯,那麼當時使用的版本是0.92.1)我可以再檢查一次,並在幾天後回來......可能還會有不幸的測試數據! – divadpoc

+0

非常感謝@divadpoc,這有點澄清。我患有與您的問題相同的症狀......但不確定問題是否相關。 – hba

相關問題