私の Hadoop ジョブは、各レコードの派生元である入力パスを認識する必要があります。
たとえば、S3 オブジェクトのコレクションに対してジョブを実行しているとします。
s3://bucket/file1
s3://bucket/file2
s3://bucket/file3
などのキーと値のペアを減らしたい
s3://bucket/file1 record1
s3://bucket/file1 record2
s3://bucket/file2 record1
...
org.apache.hadoop.mapreduce.InputFormat
これを達成する拡張機能はありますか?または、カスタム入力形式を使用するよりも良い方法はありますか?
MapContext
マッパーでは、この情報は( Hadoop プログラムのマッパーで入力ファイル名を取得する方法は? )からアクセスできることは知っていますが、Apache Crunch を使用していて、ステップのいずれかが Maps になるか Reduces になるかを制御できません。ただし、InputFormat を確実に制御できるので、これを行う場所のように思えました。