作为计算逻辑的一部分,在Mapreduce工作流程中,我需要将reducer的结果作为链中下一个reducer的参数。
Path plc =new Path(args[1]+"/3");--> Outputpath from the previous reducer
Configuration c4= new Configuration();
c4.set("denom", GetLineC.extCount(plc));---> GetLineC.extCount is a function that returns a value
ControlledJob cJob4= new ControlledJob(c4);
我使用JobControl创建作业和所有配置之间的依赖关系。当程序执行时,它给出"没有这样的文件或目录"。当控件到达这个部分时,文件将出现在这个位置。但由于配置在开始时被实例化,因此会出现此错误。
有没有办法直接将前一个reducer的单行输出设置为参数?
答案 0 :(得分:0)
嗯,我认为你的意思是以前的工作,而不是以前的减速机。如果您使用相同的驱动程序类执行这两个作业,则您已经知道上一个作业的输出,即目录。显然,您只使用一个reducer,它会将其输出写入输出路径中的part-r-00000
文件中。要将其设置为下一个作业的配置参数,您必须手动读取此文件。
您是否在考虑GetLineC.extCount(Path path)
?