Hadoopでは、さまざまなファイルを含むディレクトリ/*を渡します。ファイルの名前は、データの処理にとって重要です。Perlでこのソリューションが必要です。
Javaに相当するものはjob.get( "map.input.file")だと思います。約45分探しましたが、Perlソリューションが見つかりません。
ありがとう、ケビン
StreamUtils.safeEnvVarName
すべてのジョブ構成変数はプロセス環境にシリアル化され、メソッド内のコードを使用してプロパティ名が「安全」になります。
基本的に、このメソッドはプロパティ名の[0-9A-Za-z]以外の文字をアンダースコアに置き換えるため、次の名前map.input.file
の環境変数として使用できる必要があります。map_input_file
クリスがうまく説明したことをコードで要約するには、入力ファイル名を取得してstderrに出力するために次の2行が必要です。
my $filename = $ENV{"map_input_file"};
print STDERR "Input filename is: $filename\n";