我想发出key
和value
as 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
接口,因为它们可以互换地用作自定义键和自定义值。高温高压