Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 元组作为Hadoop映射器中的键_Java_Hadoop_Mapreduce - Fatal编程技术网

Java 元组作为Hadoop映射器中的键

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

我需要在mapreduce作业中使用2个元素的“元组”作为键

也就是说,我希望我的映射任务输出一对
(第一个\u键,第二个\u键),值

我尝试使用
ArrayWritable
,但在运行代码后,我出现了一个错误,结果表明
ArrayWritable
不适合执行此类任务,因为它不实现
Writable
(无论它是什么意思),因此不能用作键


奇怪的是,对于我的问题,我找不到任何“正确”的解决方案,它可以100%地工作,而不附带任何条件。有什么建议吗?

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

它也必须是可比较的,这样Hadoop就可以对(键、值)对进行排序。
因此,在您的情况下,一个解决方案可能是创建您自己的类,该类实现了
WritableComparable

,如果您不想实现
WritableComparable
,您可以使用
新文本(key1.toString()+“\t”+key2.toString())
作为键