7

私はmrjobを使用してマップ関数を書いています。私の入力は、HDFS上のディレクトリ内のファイルから取得されます。ファイルの名前には、ファイルには存在しない小さいが重要な部分情報が含まれています。特定のキーと値のペアが由来する入力ファイルの名前を(マップ関数内で)学習する方法はありますか?

私はこのJavaコードに相当するものを探しています:

FileSplit fileSplit = (FileSplit)reporter.getInputSplit();
String fileName = fileSplit.getPath().getName();

前もって感謝します!

4

2 に答える 2

6

Python でHADOOP 2.xを使用している場合:

file_name = os.environ['mapreduce_map_input_file']
于 2014-06-26T14:52:11.197 に答える
6

map.input.fileプロパティは入力ファイル名を与えます。

Hadoopによると- The Definitive Guide

プロパティにはジョブの構成からアクセスできます。これは、構成が引数として渡される Mapper または Reducer の configure() メソッドの実装を提供することにより、古い MapReduce API で取得されます。新しい API では、Mapper または Reducer のすべてのメソッドに渡されるコンテキスト オブジェクトからこれらのプロパティにアクセスできます。

于 2012-07-11T17:06:13.863 に答える