有時候,hadoop是按行來對資料進行處理的,由於對每一行資料,map()函式會被呼叫一次,我們有時可以根據檔名/目錄名來獲取一些資訊,從而把它們輸出,例如,目錄名中包含了日期,則我們可以取出來並輸出到reducer。在map()函式中,我們可以這樣取檔名: 1
2
inputsplit inputsplit = context.getinputsplit();
string filename = ((filesplit) inputsplit).getname();
假設當前正在處理的hdfs檔案路徑為:/user/hadoop/abc/myfile.txt,則上面的 filename 取到的是「myfile.txt」這樣的字串。但如果要獲取其目錄名「abc」,則可以這樣做: 1
2
inputsplit inputsplit = context.getinputsplit();
string dirname = ((filesplit) inputsplit).getpath().getparent().getname();
MapReduce獲取輸入檔案路徑 全
對於mapreduce而言,在map端經常需要知道處理檔案的輸入路徑,以此來區分不同的處理方式。我們知道在mapreduce框架中會將輸入的檔案切分成許多 inputsplit 檔案塊,每個檔案塊包含了檔案路徑,起止偏移量等資訊,每乙個檔案塊交給乙個map任務進行處理。而檔案塊的生成是通過input...
java中獲取路徑 獲取檔案方法
1 system.getproperty user.dir 獲取使用者的當前工作路徑 2 class.getprotectiondomain getcodesource getlocation getpath 獲取jar包路徑位址 不過有兩個需要注意的 1.返回如果是個檔案說明獲取的是jar包完整路...
Java輸入某路徑獲取所有的檔案
如果還有夢就追,至少不會遺憾和後悔 一.輸入乙個路徑,將該路徑下的 及其子目錄下 的所有檔案列出來。列出某路徑下的所有檔案 param path public void getallfile string path 二.輸入乙個路徑,將該路徑下的檔案 資料夾的數量統計出來。private int f...