1
3 단계로 mapreduce 작업을 구현하려고하고 있으며 각 단계마다 지금까지 모든 단계의 데이터가 필요합니다. 누구 mrjob에 디스크에 매퍼 또는 reducers 결과를 저장할 수있는 방법에 대한 예제/아이디어가 있습니까?MapReduce : Mrjob 결과를 지속적으로 저장합니다.
3 단계로 mapreduce 작업을 구현하려고하고 있으며 각 단계마다 지금까지 모든 단계의 데이터가 필요합니다. 누구 mrjob에 디스크에 매퍼 또는 reducers 결과를 저장할 수있는 방법에 대한 예제/아이디어가 있습니까?MapReduce : Mrjob 결과를 지속적으로 저장합니다.
작업에 여러 입력을 전달할 수 있습니다. 이전 작업의 출력을 입력으로 가져 오기만하면됩니다.
결과를 디스크에 저장한다고하면 출력이 stdout으로 다시 스트리밍되는 것처럼 보입니까? 그 행동은 단지 편리하고 (그리고 꺼질 수 있습니다), MRJob 모든 것이 디스크에서 튀어 오릅니다.
2 단계 작업의 경우이 작업을 수행 할 수 있습니다 :
job1 = firstMR(['-r', mode, inputDir, '-o', outputDir, '--no-output'])
job1.set_up_logging()
with job1.make_runner() as runner1:
runner1.run()
firstOutput = runner1.get_output_dir()
job2 = secondMR(['-r', mode, firstOutput, anyOtherInput, '-o', finalOutputDir, '--no-output'])
job2.set_up_logging()
with job2.make_runner() as runner2:
runner2.run()
일도
가 참고 :당신이 어떤 장애물에 부딪혔다는 것을 알게되면 비교적 똑바로 말해야합니다.
'with run1 :'로 job1.make_runner()를 사용하면'with' 스코프를 남긴 후에'firstOutput' 디렉토리를 정리하지 않겠습니까? job2가 job1'with' 문 범위 안에 있어야하지 않습니까? 참조 : https://pythonhosted.org/mrjob/runners-runner.html#mrjob.runner.MRJobRunner.cleanup – Andy