MapReduce程序中的万能输入FileInputFormat.addInputPaths,mapreduce


写MR过程中经常会遇到多个源路径的输入,我们可以在MR程序主函数中通过FileInputFormat.addInputPaths(job,args[0])方法来实现,

args[0]可以是folder1或者folder1,folder2只要以逗号分隔就可以了。

这样在执行MR的时候,输入会将多个源路径全部多为map输入进行执行。


另外一种实现单输入的方法(只支持一个目录作为输入目录):

FileInputFormat.setInputPaths(job, new Path(args[0]));


当然FileInputFormat.addInputPaths是兼容FileInputFormat.setInputPath的,也就是说如果我调用的是多输入路径函数,但是输入数据源只有一个路径,也是能够正常执行的,所以通用起见,FileInputFormat.addInputPaths是个更好的选择。

相关内容