Повторять ключ/значение более одного раза на этапе сокращения (HADOOP)?

Как многократно повторять пары ключ/значение, полученные на этапе сокращения HADOOP. я хочу сделать что-то подобное, но это не входит во вторую итерацию.

for (Vector value : values)
 {

    sum += value.getVector()[length-1];
   for (int i = 1; i < length-1; i++)
     {
      value.getVector()[i]=value.getVector()[i]/value.getVector()[length-1];
      mean[i]+=value.getVector()[i];
         }
}

for (Vector value : values)
 {
    for (int i = 1; i < length-1; i++) 
           {
            value.getVector()[i]=value.getVector()[i]/value.getVector()[length-1];
           }
}

пожалуйста, дайте мне решение ??? спасибо :)


person Divyendra    schedule 22.04.2013    source источник


Ответы (1)


Вы повторяете результаты в values, и после того, как вы их повторите, вы не сможете сделать это снова.

При условии, что общее количество в values не слишком велико, вы можете попробовать установить значения в локальную переменную коллекции, и тогда вы сможете перебирать их несколько раз.

Попробуйте следующее: Java: используйте перечисление несколько раз

person Mark Vickery    schedule 22.04.2013
comment
что, если количество моих значений велико? - person Divyendra; 22.04.2013
comment
Попробуйте закодировать свою логику так, чтобы вам не нужно было делать несколько проходов, но вы могли достичь того, чего хотите, за один проход. (или карта-красная над данными дважды с двумя разными редьюсерами) - person Mark Vickery; 22.04.2013