매퍼는 값을 한 번만 출력합니다. 하지만 결합기가 값을 두 번 가지고 있는지 확인했을 때. 이것은 나에게 정말로 이상합니다.결합 자에서 Mapper 출력이 두 배로됩니다.
Pls 도움. 출력이 전송되는 위치에서지도 코드
는모듈 : 결합기에서
for(int i = 0; i<alcmapi.size(); i++)
{
int section = 0;
for(int j = 0; j<alcmapj.size(); j++)
{
if(!alcmapi.get(i).getid().equals(alcmapj.get(j).getid()))
{
int fi = Integer.parseInt(alcmapi.get(i).getField());
int fj = Integer.parseInt(alcmapj.get(j).getField());
ArrayList<CustomMap> al = new ArrayList<CustomMap>();
al.add(new CustomMap(alcmapi.get(i).getid(), fi));
al.add(new CustomMap(alcmapj.get(j).getid(), fj));
if(fi<fj)
{
section = fi;
}
else
{
section = fj;
}
Collections.sort(al);
{
output.collect(new Text(t+" "+al.get(0).getid()), new Text(al.get(1).getid()+" "+section));
}
}
}
}
: 여기 확인할 때 I는 키에 대응하는 값이 두배로 나타나는 참조
:
while(values.hasNext()){
String val = values.next().toString();
System.out.println("val:"+val);
}
미리 감사드립니다!
표현을't()'루프 인덱스에 의존하지 않는'j'가 있도록 내부 루프 반복마다 출력됩니다. – rsp
내 내부 루프에 따라 다릅니다. 행 확인 : ArrayList al = new ArrayList (); al.add (새 CustomMap (alcmapi.get (i) .getid(), fi)); al.add (새 CustomMap (alcmapj.get (j) .getid(), fj)); –
이 문제에 대한 도움 pls –