我需要在Mapreduce工作中使用2个元素的“元组”作为键。
即我希望我的 map task 输出对(first_key,second_key), value
我尝试使用ArrayWritable
,但是运行代码后出现一个错误,结果发现ArrayWritable
不适合此类任务,因为它没有实现WritableComparable
(无论什么意思),因此不能用作键。
奇怪的是,我找不到针对我的问题的任何“正确”解决方案,这些解决方案可以在不附加任何条件的情况下100%工作。有什么建议么?
最佳答案
MapReduce作业中的任何键都必须实现WritableComparable ,而不是ArrayWritable
。
它也必须是Comparable
,以便Hadoop可以对(键,值)对进行排序。
因此,在您的情况下,解决方案可能是创建自己的实现WritableComparable
的类。