2011-09-02 9 views
0

루핑에 "루프"내 감속기, 예를 들어 : 코드는 현재 줄이고 내가 list.get을 위해 원하는 걸 줄 전체를 통해 실행됩니다는 하둡 내가 방법을 찾기 위해 노력하고있는 감속기

for(String document: tempFrequencies.keySet()) 
{ 
if(list.get(0).equals(document)) 
{ 
testMap.put(key.toString(), DF.format(tfIDF)); 
} 
} 
//This allows me to create a hashmap which i plan to write out to context as Filename = key then all of the terms weights = value (a list I can parse out in the next job) 

(0)하지만 문제가 일단 그 전체 감소 일을 마치면 다시 list.get (1) 등을 시작하는 데 필요한 등 어떤 단계를 반복하는 단계에 대한 모든 아이디어가 끝난 후?

+0

나는 재구성 할 것이다. 이 질문은 hadoop 프레임 워크와 관련이 있습니까? 그렇다면 더 많은 배경을 제공 할 수 있습니까? –

+2

Hadoop 감소 상태에서 매퍼의 모든 키, 값 쌍에 대해 반복됩니다. 따라서 Paul이 제안한 것을 수행하면 모든 키, 값 쌍에 대해 코드를 두 번 실행합니다 (또는 루프를 여러 번 설정합니다). 내가 할 필요가있는 것은 전체 reduce (모든 키, 값에 대한 loop through) 결과를 출력 한 다음 첫 번째 key, value 쌍에서 다시 시작하는 루프를 실행하는 것입니다. 때까지 각 문서에 대한 결과를 얻었습니다. – chrstahl89

+0

아 좋아요. 따라서 올바르게 이해한다면 업데이트 된 값으로 루프로 돌아갈 수있는 방법을 찾아야합니다. 옳은? –

답변

0

네스트는 루프

for(int i = 0; i < number_of_time; i++){ 
//your code 

} 

제가 으로 0을 교체.

0

키 태그 값 기술을 사용할 수 있습니다. 매퍼에서 목록 값의 경우 (key, 0, value) 및 문서 (?)의 경우 (key, 1, value)를 내 보냅니다. 감속기 값은 키와 태그로 그룹화되고 각 키의 태그별로 정렬됩니다. 자신 만의 그룹화 비교기 (및 사용자 정의 파티션 도구)를 작성해야합니다. 추신 : 그래프 처리에 동일한 기술을 사용하고 있습니다. 주말 후에 샘플 코드를 제공 할 수 있습니다.