实现RawComparator是否比扩展WritableComparator快得多?查看Text / LongWritable / etc及其内置的比较器,似乎它们基本上只是直接从全字节数组中读取字段,而不是使用DataInput并将值填充到键类中。
就我而言,我有一个自定义键类,其中包含多个字段,包含多个字符串的混合类型。试图用RawComparator sorta来解决这个问题令我感到恐惧,因为它看起来至少在表面上很难正确实现。
最佳答案
是的,当您100%确信字节对字节的比较反射(reflect)了数据等效性时,原始比较器绝对好。
您可以使用apache的Thrift或avro之类的库来为您处理二进制序列化-在这种情况下,您不必担心原始数据不一致地以binary编码。
二进制比较总是比对象反序列化更快。但是“那么多”的主人?好吧,这取决于您如何定义“那么多” :)