Как получить имя входного файла в MRjob
Я пишу функцию карты с помощью mrjob. Мой вход будет поступать из файлов в каталоге HDFS. Имена файлов содержат небольшую, но важную информацию, которая отсутствует в файлах. Есть ли способ узнать (внутри функции карты) имя входного файла, из которого происходит данная пара ключ-значение?
Я ищу эквивалент этого кода Java:
FileSplit fileSplit = (FileSplit)reporter.getInputSplit();
String fileName = fileSplit.getPath().getName();
спасибо заранее!
2 ответов
map.input.file
свойство даст имя входного файла.
по словам Hadoop-Окончательное Руководство
к свойствам можно получить доступ из конфигурации задания, полученной в старом API MapReduce, предоставив реализацию метода configure() для Mapper или Reducer, где конфигурация передается в качестве аргумента. В новом API эти свойства могут быть доступны из объекта контекста, переданного всем методам Картограф или редуктор.