Мое задание hadoop должно знать входной путь, из которого происходит каждая запись.Hadoop InputFormat set Ключ к пути входного файла
Например предположим, я бегу на работу по набору объектов 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
(How to get the input file name in the mapper in a Hadoop program?), но я использую Apache хруст, и я не могу контролировать, будет ли какой-либо из моих шагов будет Maps или уменьшает, однако я могу надежно контролировать InputFormat так что это Мне показалось, что это место для этого.
Спасибо, я думаю, что закончил писать свои собственные, как вы описали. Если кто-то читает его, пинги меня и плохо выкапывают и публикуют. – qwwqwwq