2013-11-03 22 views

回答

1

你一定會需要編寫自定義類的Key作爲TwoDArrayWritable沒有實現WritableComparable(即使你只是擴展TwoDArrayWritable類添加接口和compareTo方法)。

至於是否應該使用TwoDArrayWritable在自定義類 - 取決於兩個因素(在我看來):

  • 的大小是固定/尺寸的陣列?如果是的話,我會說使用自定義類,以便您可以節省性能,而不是重新創建每個對象的數組反序列化調用
  • 你的數組是否保存原始類型(int,double,float等) - 如果是的話,我會再說使用自定義類,因此在執行下游矩陣操作時,您不必擔心從包裝可寫(IntWritable,DoubleWritable等)中打包/解包原始值。
+0

Thx Chris White for your reply.My arrays are not具有固定的尺寸/尺寸,但總是會翻倍。所以最好爲key和value right創建一個Custom類。 –

+0

是的,我創建[MatrixWritable] class.but(http://stackoverflow.com/questions/19655071/custom-hadoop-key-and-value-get-values-in-a-two-dimensional-double-array)class.but如何編寫CompareTo()方法以便發出關鍵字(矩陣) –

+1

compareTo方法可以通過多種方式實現,一種方法是首先比較兩種尺寸的排序順序,如果它們匹配,矩陣,一次一個元素 –

相關問題