#java #mapreduce #hadoop2
#java #mapreduce #hadoop2
Вопрос:
У меня есть задание mapreduce, где путь к файлу ввода равен: /basedirectory/*/*.txt
Внутри basedirectory у меня есть разные вложенные папки (CaseA, CaseB и т.д.), Каждая из которых содержит текстовые файлы hdfs.
На этапе сопоставления задания я хочу выяснить, откуда именно взялся фрагмент данных (например, CaseA). Как я могу этого добиться?
Я сделал нечто подобное для заданий mapreduce с более чем 1 входной таблицей hbase, где я использую context.getInputSplit().getTableName(), чтобы найти фактическое имя таблицы, но не уверен, что делать для входных файлов HDFS.
Ответ №1:
Вы можете получить разделение входных данных, используя context.getInputSplit()
(где context
это mapper.context
), а затем использовать .getPath()
метод в inputSplit
, чтобы вернуть путь к файлу.