2017-11-28 12 views
1

지도 작업에서 모든 입력 레코드를 트래버스하지 않아도되는 경우가 있습니다. 예를 들어 각 매퍼에서 특정 조건을 만족하는 최대 200 개의 레코드 만 내보내고 나면 종료 할 수 있습니다.hadoop의 코드에서지도 작업을 일찍 끝낼 수 있습니까?

내가 할프럽에서 이것을 할 수 있습니까? API 문서에서 관련 메소드를 아직 찾을 수 없습니다.

답변

1

Mapperrun 메서드를 재정 의하여이 문제를 해결할 수 있습니다.

public void run(Context context) throws IOException, InterruptedException { 
    setup(context); 
    try { 
     while (context.nextKeyValue()) { 
      map(context.getCurrentKey(), context.getCurrentValue(), context); 
     } 
    } finally { 
     cleanup(context); 
    } 
} 

그래서이 표준 map() 메소드가 호출되는 방법은 다음과 같은

실행 방법은 현재 보인다. 거기에 카운터를 추가하고 200을 치면 while 루프에서 빠져 나올 수 있습니다.

+0

정확히 내가 필요한 것. – user1206899