0

我对 reducer 的输入值是一个双精度数组。

719.000 501.000 -75.000
 501.000 508.000 -62.000
 -75.000 -62.000 10.000

在我的减速机中,我需要打印这个矩阵。所以我做了

public void reduce(IntWritable key,
            Iterable<DoubleArrayWritable> values, Context context)
            throws IOException, InterruptedException {

            System.out.println("in reducer");
            for (DoubleArrayWritable  c :values) { // TODO - test me 
                System.out.println("C ="+c.toString());
}
}

其中 DoubleArrayWritable 是

public static class DoubleArrayWritable extends TwoDArrayWritable {
        public DoubleArrayWritable() {
            super(DoubleWritable.class);
        }
    }

我的输出是C =edu.Driver$DoubleArrayWritable@32d16fe3 但我需要以人类可读的格式打印整个矩阵。

4

1 回答 1

1

You need to override toString() of DoubleArrayWritable:

@Override
public String toString()
{
    // return the string you want
}
于 2013-10-28T06:34:08.073 回答