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