map中獲取輸入檔案路徑

2021-06-19 04:25:00 字數 650 閱讀 1960

有時候,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...