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




Вы можете разделить входные данные, используя context.getInputSplit() (где context — это mapper.context), а затем использовать метод .getPath() для inputSplit, чтобы вернуть путь к файлу.