为什么reduce阶段遍历value打印是“D@67d73bd8,[D@67d73bd8”
不管怎么样转都是这个,
map阶段输出前打印还是 -5,-5
到reduce阶段遍历就变成了 [D@67d73bd8,[D@67d73bd8
reduce遍历代码如下
static class K_meansReducer extends Reducer<Text, Text, Text, NullWritable>{
Counter counter = null;
@Override
protected void reduce(Text key, Iterable<Text> values,Context context)
throws IOException, InterruptedException {
int len = key.toString().split(",").length;
double newCenter[] = new double[len]; //保存新生成的簇中心
int size = 0; //记录传过来的簇中有多少向量
for(Text value : values){
String[] centerStr = value.toString().split(",");//拿到所有d维空间中的“点”信息
for(int i=0;i<centerStr.length;i++){//将其对应的空间轴坐标累加,方便后面求均值
newCenter[i] += Double.parseDouble(centerStr[i]);
}
size++;
}
