Java 元组作为Hadoop映射器中的键
我需要在mapreduce作业中使用2个元素的“元组”作为键 也就是说,我希望我的映射任务输出一对Java 元组作为Hadoop映射器中的键,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我需要在mapreduce作业中使用2个元素的“元组”作为键 也就是说,我希望我的映射任务输出一对(第一个\u键,第二个\u键),值 我尝试使用ArrayWritable,但在运行代码后,我出现了一个错误,结果表明ArrayWritable不适合执行此类任务,因为它不实现Writable(无论它是什么意思),因此不能用作键 奇怪的是,对于我的问题,我找不到任何“正确”的解决方案,它可以100%地工作,而不附带任何条件。有什么建议吗?MapReduce作业中的任何键都必须实现,而不是ArrayWr
(第一个\u键,第二个\u键),值
我尝试使用ArrayWritable
,但在运行代码后,我出现了一个错误,结果表明ArrayWritable
不适合执行此类任务,因为它不实现Writable
(无论它是什么意思),因此不能用作键
奇怪的是,对于我的问题,我找不到任何“正确”的解决方案,它可以100%地工作,而不附带任何条件。有什么建议吗?MapReduce作业中的任何键都必须实现,而不是
ArrayWritable
它也必须是可比较的,这样Hadoop就可以对(键、值)对进行排序。
因此,在您的情况下,一个解决方案可能是创建您自己的类,该类实现了
WritableComparable
,如果您不想实现WritableComparable
,您可以使用新文本(key1.toString()+“\t”+key2.toString())
作为键