我需要在Mapreduce工作中使用2个元素的“元组”作为键。

即我希望我的 map task 输出对(first_key,second_key), value
我尝试使用ArrayWritable,但是运行代码后出现一个错误,结果发现ArrayWritable不适合此类任务,因为它没有实现WritableComparable(无论什么意思),因此不能用作键。

奇怪的是,我找不到针对我的问题的任何“正确”解决方案,这些解决方案可以在不附加任何条件的情况下100%工作。有什么建议么?

最佳答案

MapReduce作业中的任何键都必须实现WritableComparable ,而不是ArrayWritable

它也必须是Comparable,以便Hadoop可以对(键,值)对进行排序。
因此,在您的情况下,解决方案可能是创建自己的实现WritableComparable的类。

10-06 07:01