Объединение двух ключей в одном наборе данных с помощью Hadoop Mapreduce - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в Hadoop и пытаюсь запустить задание mapupduce hadoop в Java, чтобы объединить некоторые данные и вывести их в виде файлов CSV. Я использую hadoop 3.1.1.У меня есть набор данных, содержащий смешанные данные, и это файлы JSON ежедневно.Одна строка на запись, и каждая запись имеет ключ соединения (id), а также тип с различными значениями (typeA, typeB и т. Д.), А также некоторые другие поля.У меня есть много строк, как показано ниже, и typeA и typeB могут быть далеко друг от друга из-за разбиения файлов JSON

Вот как это выглядит:

id   starttime endtime type   otherfields
1      x        y      typeA  foo,bar
1      a        b      typeB  hello,world
2      p        q      typeA  foo,bar 
2      r        s      typeC  hadoop,mapreduce
1      c        d      typeB  foo1,bar1

Теперь мой вариант использования заключается в специальном присоединении к typeAи typeB, используя ключ соединения (id), и я хочу, чтобы результат выглядел следующим образом

Я также хотел бы добавить, что может быть много записей typeB для одного typeA с тем же идентификатором.Существует отношение один ко многим, поэтому я хотел бы иметь по две строки для каждой записи typeB, где значения типа A повторяются.

id,starttimetypeA,endtimetypeA,starttimetypeB,endtimetypeB,otherfieldstypeA,otherfieldstypeB
1, x, y, p, q, foo, bar, hello, world
1, x, y, c, d, foo1, bar1, hello, world

Я читал о соединении на стороне карты и уменьшении соединения на стороне.Что было бы хорошей стратегией для объединения этого набора данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...