Tuple是Hadoop映射程序中的一个关键



我需要在mapreduce作业中使用一个由2个元素组成的"元组"作为键。

即,我希望我的地图任务输出一对(first_key,second_key), value

我尝试使用ArrayWritable,但在运行代码后,我遇到了一个错误,结果发现ArrayWritable不适合执行这样的任务,因为它没有实现WritableComparable(无论它的意思是什么(,因此不能用作键。

奇怪的是,我找不到任何"正确"的解决方案来解决我的问题,它可以100%无条件地工作。有什么建议吗?

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

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

如果不想实现WritableComparable,可以使用new Text(key1.toString() + "t" + key2.toString())作为键。

相关内容

  • 没有找到相关文章

最新更新