Загрузка нескольких файлов в одной и той же функции карты в Hadoop - PullRequest
2 голосов
/ 28 января 2011

У меня есть два набора данных, один - исторические данные по котировкам, а другой - исторические данные по сделкам. Данные разбиты по символам в день. Мой вопрос заключается в том, как загрузить два файла с одним и тем же символом в одну и ту же функцию карты, например, я хочу обрабатывать котировки IBM 2011-01-27 и один и тот же товарный файл IBM одновременно. Как мне настроить Hadoop для этого? Я читал о MultlipleFileReader, но это не дает нам независимости от загрузки определенных файлов вместе.

Спасибо Ankush

Ответы [ 2 ]

1 голос
/ 28 января 2011

Выведите пару <$date-$symbol, $data> в вашей функции карты, где $date-$symbol - это составной ключ с объединением даты и символа, а $data - это либо данные котировки, либо данные о сделке. Hadoop сгруппирует все пары, имеющие один и тот же ключ, и вы сможете обрабатывать данные в функции redu ().

Редуктору потребуется некоторая логика, чтобы различать данные котировок или данные о сделках, в зависимости от того, как вы сериализуете эти данные.

0 голосов
/ 30 января 2011

Несмотря на то, что вы можете выполнить описанный выше способ, вы также можете создать текстовый файл с именами файлов из обоих наборов данных и использовать его в качестве входных данных для задания. Вы можете построить его автоматически путем сканирования дерева HDFS. Главный недостаток этого решения в том, что вам не понравится локальность данных - поэтому большая часть данных будет передаваться по сети.

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