以前のスレッドHadoopで非常によく似た質問をしました:キーと値のペアの値としてdoubleの配列を使用するにはどうすればよいですか?。
私の問題は、位相を減らすためにマップから値としてdouble配列を渡したいということです。私が得た答えは、シリアル化してテキストに変換し、それをレデューサーに渡して逆シリアル化することでした。これは優れたソリューションですが、2回のシリアル化と逆シリアル化に似ています。
ArrayWritableは、たとえばFloatWritableのようにWritableを実装する型のみを受け入れます。したがって、別の解決策は、doubleの配列をDoubleWritablesの配列に変換することです。しかし、これにも時間がかかり、Writablesは非常に高価なリソースです。ArrayWritable array = new ArrayWritable(Double.class)のような非常に単純なソリューションはありませんか?