Mapreduce程式中的FileInputFormat.addInputPaths和FileInputFormat.addInputPath方法
阿新 • • 發佈:2019-02-15
好幾天沒動筆了,今天寫個簡單的~~
寫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是個更好的選擇。