我已经完成了map-reduce wordcount程序,现在我想使用输出(这是每个单词的字数),我想从中计算前5个关键字。如何将第1阶段的输出用于第2阶段,我应该再办一个工作吗?
答案 0 :(得分:2)
你当然可以从第一个输出中读出另一份工作。
考虑您的任务有2个步骤: 第1步:字数统计 第2步:前n个单词
在第2步中,有一个IdentityMapper并确保你有一个reducer(job.setNumReduceTasks( NO_OF_REDUCERS );
),然后在reducer中你可以跟踪topN并在结束时发出它们,为此你应该{减速机的{3}}。
您还可以编辑Step1本身并使其只有一个reducer,并跟踪topN单词并最后发出它们。但是,如果你有很多的话,那么这个方法比两个单独的步骤更耗时。