我需要使用 2 个元素的“元组”作为我的 mapreduce 作业中的键。
即我希望我的 map task 输出一对 (first_key,second_key), value
我尝试使用 ArrayWritable
,但在运行我的代码后出现错误,结果证明 ArrayWritable
不适合这样的任务,因为它不适合这样的任务' t 实现 WritableComparable
(无论它是什么意思),因此不能用作键。
奇怪的是,我无法为我的问题找到任何“正确”的解决方案,该解决方案将 100% 有效且没有任何附加条件。有什么建议吗?
最佳答案
MapReduce 作业中的任何键都必须实现 WritableComparable 而不是 ArrayWritable
的情况。
它也必须是 Comparable
以便 Hadoop 可以对 (key,value) 对进行排序。
因此,在您的情况下,一个解决方案可能是创建您自己的实现 WritableComparable
的类。
关于java - 元组作为 Hadoop 映射器中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23365622/