2010-04-02 3 views
2

주어진 알고리즘에 대한 데이터를 집계해야하므로 내 알고리즘에서 현재 nr_reduces 1을 사용합니다.Disco/MapReduce : 분할 데이터에서 chain_reader 사용

입력을 다음 반복에 전달하려면 "chain_reader"를 사용해야합니다. 그러나 매퍼의 결과는 단일 결과 목록이므로 다음 맵 반복은 단일 매퍼로 수행됩니다. 여러 매퍼를 트리거하기 위해 결과를 분할하는 방법이 있습니까?

답변

0

나는 긴 대답을 줄 수 있지만,이 질문은 3 세 이후 : 한마디로 http://discoproject.org/doc/disco/howto/dataflow.html#single-partition-map

:이 페이지 체크 아웃 N 입력이 매퍼 기능에있을 때, 출력이 N 될 것입니다 및 설정하여 merge_partitions=False 감소하면 N 개의 얼룩이 출력됩니다. 이제 입력보다 더 많은 출력을 생성하려는 경우 partions=N을 전달할 수 있습니다. 그러나 디스패치 작업이 매퍼 함수로 구성되어 있고 분할 출력을 생성하려는 경우 위에서 설명한 params와 결합 된 가장 간단한 reduce fase를 추가하여 해당 분할 출력을 얻습니다.

 
@staticmethod 
def reduce(iter, out, params): 
    for (key, value) in iter: 
     out.add(key, value)