У меня есть данные в формате csv.Как сгенерировать несколько имен файлов во время выполнения в HADOOP?
например, K1, K2, data1, data2, Data3
здесь мой картографа передает ключ к редуктору как k1k2 & Значение как DATA1, data2, Data3
Я хотел, чтобы сохранить эти данные в нескольких файлах с именем файла K1k2 (или ключом, который получает редуктор). Теперь, если я использую класс MultipleOutputs, я должен упомянуть имена файлов до начала отображения. Но здесь, поскольку только после прочтения данных из картографа, я могу определить ключ. Как мне продолжать?
PS Я новичок в этом.
Нет, но он дает java.lang.IllegalArgumentException об ошибке: Названы выход «K1K2» не определен \t в org.apache.hadoop.mapreduce.lib.output.MultipleOutputs. checkNamedOutputName (MultipleOutputs.java:193) – Sanchit
Если я добавляю MultipleOutputs.addNamedOutput (job, FileName1.toString(), TextOutputFormat.class, NullWritable.class, Text.class); в методе generateOutput(), как мне получить работу в редукторе. Я только начал, что это может быть очень простой вопрос? – Sanchit
нет необходимости в именованном выходе. просто посмотрите на мой пост –