使用哪个:自定义数据类型或TwoDArrayWritable

时间:2013-11-03 19:07:11

标签: hadoop mapreduce

为了发出2个矩阵作为键值对:

Key  - Matrix A

Value - Matrix B

我应该创建custom数据类型还是可以直接使用TwoDArrayWritable?那么自定义类中的compareTo()方法呢?

1 个答案:

答案 0 :(得分:1)

您肯定需要为您的密钥编写自定义类,因为TwoDArrayWritable未实现WritableComparable(即使您只是扩展TwoDArrayWritable类以添加接口和{ {1}}方法)。

至于你是否应该在自定义类上使用TwoDArrayWritable - 取决于几个因素(在我看来):

  • 您的阵列的大小/尺寸是否固定?如果是这样,我会说使用自定义类,以便您可以保存性能,而不是为每个对象反序列化调用重新创建数组
  • 你的数组是否包含原始类型(int,double,float等) - 如果是这样我会再次说使用自定义类,所以你不必担心从它们的包装器可写入包装/解包原始值(IntWritable, DoubleWritable等)执行下游矩阵运算时