2011-08-25 54 views
2

是否比擴展WritableComparator更快地實現RawComparator?看看Text/LongWritable/etc和它們的內置比較器,看起來他們基本上只是直接從整個字節數組中讀取字段,而不是使用DataInput,並將值填入關鍵類。實施RawComparator真的快得多嗎?

在我的情況,我有一個自定義鍵類,有多個字段,混合類型包括一些字符串。試圖用RawComparator sorta來解決這個問題讓我很害怕,因爲它看起來至少在表面上看起來很難正確實現。

回答

1

是的,當你100%確定字節到字節的比較反映了數據等價性時,原始比較器是非常好的。

您可以使用諸如apache的Thrift或avro這樣的庫來處理二進制序列化---在這種情況下,您不必擔心原始數據在二進制中不一致地編碼。

二進制比較總是比對象序列化更快...但是「那麼多」主?那麼這取決於你如何定義「那麼多」:)