1. 程式人生 > >Mapreduce程式中的FileInputFormat.addInputPaths和FileInputFormat.addInputPath方法

Mapreduce程式中的FileInputFormat.addInputPaths和FileInputFormat.addInputPath方法

好幾天沒動筆了,今天寫個簡單的~~

寫MR過程中經常會遇到多個源路徑的輸入,我們可以在MR程式主函式中通過FileInputFormat.addInputPaths(job, conf.get("input_dir"))方法來實現,

在提交指令碼中將多個源的路徑用“,”分隔,input_dir=$INPUT_FILE_PATH1,$INPUT_FILE_PATH2  

這樣在執行MR的時候,輸入會將多個源路徑全部多為map輸入進行執行。

除了多輸入路徑外,如果源路徑只有一個的話,FileInputFormat還有一個方法是addInputPath,通過FileInputFormat.addInputPath(job, new Path(conf.get("input_dir")));可以將一個源路徑作為map的輸入執行。

當然FileInputFormat.addInputPaths是相容FileInputFormat.addInputPath的,也就是說如果我呼叫的是多輸入路徑函式,但是輸入資料來源只有一個路徑,也是能夠正常執行的,所以通用起見,FileInputFormat.addInputPaths是個更好的選擇。