Я пишу программу mapreduce, которая имеет 2 картографа и 1 редуктор, я внедрил пользовательские типы данных для каждого картографа. Тип данных является более или менее просто контейнером, где поля являются значениями Text/Intwritable.Как вы обрабатываете различные типы значений в редукторе
Так Mapper 1 выводит идентификатор (Текст), M1Writable (моя запись с 3 полями)
Mapper 2 выходов идентификатор (Текст), M2Writable (моя запись с 2 полями)
Редуктор получит итерируемые значения
Как это будет работать, поскольку два типа записи могут быть разными?
Как определить, из какого картографа он появился?
Спасибо Я знаю, что это основной вопрос, но у меня возникли проблемы с поиском ответа.
Зачем думать о мультиформаторе? Почему бы просто не использовать один картограф и переместить логику вывода на карту. Короче говоря, выходная логика находится в одном преобразователе, преобразователь может выводить ожидаемые выходы по мере необходимости. – luoluo
Вы пытаетесь добиться сокращения бокового соединения с двумя наборами данных? – Ramzy
Вы, ребята, правы. Это просто лучшая логика, чтобы либо сохранить мой вывод mapper, либо иметь абстрактный класс, доступный для записи, который распространяется на мои выходные записи, поэтому они являются одним и тем же родительским типом. Спасибо, парни – VSEWHGHP