hadoop獲取分片的路徑

在mapper中獲取當前正在處理的HDFS文件名/HDFS目錄名 linux

默認狀況下,Hadoop是按行來對數據進行處理的,因爲對每一行數據,map()函數會被調用一次,咱們有時能夠根據文件名/目錄名來獲取一些信息,從而把它們輸出,例如,目錄名中包含了日期,則咱們能夠取出來並輸出到Reducer。 app

在map()函數中,咱們能夠這樣取文件名: 函數

     InputSplit inputSplit = context.getInputSplit();
     String fileName = ((FileSplit) inputSplit).getName(); oop

假設當前正在處理的HDFS文件路徑爲:/user/hadoop/abc/myFile.txt,則上面的 fileName 取到的是「myFile.txt」這樣的字符串。 spa

但若是要獲取其目錄名「abc」,則能夠這樣作: hadoop

     InputSplit inputSplit = context.getInputSplit();
     String dirName = ((FileSplit) inputSplit).getPath().getParent().getName(); 字符串

相關文章
相關標籤/搜索