我试图用三个步骤实现mapreduce作业,每一步之后我都需要所有步骤的数据。有没有人知道我如何将映射器或还原器的结果保存到mrjob中的磁盘中?
发布于 2013-02-17 23:42:52
您可以将多个输入传递到一个作业中,只需将前一个作业的输出作为输入。
当您说要将结果保存到磁盘时,听起来就像是要依赖流回stdout的输出?这种行为只是一种方便(并且可以关闭),MRJob所有的东西都会从磁盘上弹出。
对于两个阶段的工作,您可以这样做:
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() 有些事情要注意:
让我知道,如果你遇到任何障碍,它应该是相对直接的。
https://stackoverflow.com/questions/14730735
复制相似问题