我想发出key
,value
custom datatype
。
我是否应该实现键和值的2 classes
?
一个KeyWritable implements WritableComparable
和
另一个
ValueWritable implements Writable
.
是那样的还是一个
WritableComparable
对emiting custom key and value
来说就足够了.
对键和值使用相同的类,那么你只需要编写一个实现WritableComparable Interface的自定义类。
实现 WritableComparable 接口的类可用于键和值。这意味着您的新自定义类也将是可写的和可比较的。
WwritetableComparable 的超级接口是 Wribable 和 Comparable。
请验证这一点
如果您的键不是自定义对象,并且它只是文本或字符串值,则无需单独编写 KeyWwriteable。
在Hadoop中,每个要用作键的数据类型都必须实现Writable
和Comparable
接口或更方便地WritableComparable
接口,并且每个要用作值的数据类型都必须实现Writable
接口。
如果自定义键和值的类型相同,则可以编写一个实现WritableComparable
接口的自定义数据类型。如果自定义键类型与自定义值类型不同,则必须编写两种单独的自定义数据类型,其中自定义键类实现WritableComparable
接口,自定义值类实现Writable
接口。请注意,通常开发人员在编写自定义数据类型时倾向于使用WritableComparable
接口,因为它们可以互换用作自定义键和自定义值。呵呵