Если данные связаны, то ваша задача - обеспечить передачу информации. MapReduce разбивает данные и обрабатывает их независимо от каких-либо (не реализованных) отношений:
Карта просто считывает данные в блоках из входных файлов и передает их функции карты по одной «записи» за раз. Запись по умолчанию - это строка (но может быть изменена).
Вы можете комментировать данные в Map с их происхождением, но в основном вы можете делать с Map: классифицировать данные. Вы генерируете новый ключ и новые значения и группы MapReduce новым ключом. Поэтому, если между разными записями существуют отношения: выберите один и тот же (или похожий * 1) ключ для их выдачи, чтобы они сгруппировались.
Для Reduce данные разбиваются на разделы / сортируются (то есть, где происходит группировка), а затем функция Reduce получает все данные из одной группы: один ключ и все связанные с ним значения. Теперь вы можете агрегировать по значениям. Вот и все.
Итак, у вас есть общая группировка, реализованная в MapReduce. Все остальное - ваша ответственность. Вы хотите перекрестный продукт из двух источников? Реализуйте это, например, введя искусственные ключи и мультиизлучение (соединение фрагментов и копий). Ваше воображение это предел. И: вы всегда можете передать данные через другую работу.
* 1: похоже, потому что вы можете повлиять на выбор группировки позже. обычно это группа, тождественная функция, но вы можете изменить это.