2016-11-28 9 views
0

Я новичок в Hadoop и Mapreduce. У меня есть требование сравнить два файла excel с помощью mapreduce. Я должен перейти к mapreduce, так как размер этих файлов будет очень большим (> 10gb). Мой вопрос заключается в том, как я могу получить два разных входных файла из другого картографа и сравнить эти два файла в Reducer. Мне нужно преобразовать это приложение в jar и запустить его в Amazon EMR. Я не могу найти подходящий учебник для этого в Интернете. Пожалуйста, предоставьте мне некоторые идеи для этого.Сравнение двух файлов Excel с использованием Hadoop Mapreduce

+0

Я полагаю, вы хотите сравнить лист строку первенствовать по строкам. У вас есть общий столбец в обеих таблицах, который будет связывать строки из двух таблиц? – Amit

+0

Amit, На самом деле мне нужно сравнить каждую ячейку в обоих файлах excel. Я мог бы зациклиться. Но перед этим мне нужно прочитать файлы Excel и отправить их на редуктор. –

+0

Пожалуйста, не спешите к картеру или редуктору так скоро. Сопоставляет ли каждая ячейку среднее значение A1 в первой таблице по сравнению с A1 во втором? Или A1 со всеми другими ячейками в другой таблице? – Amit

ответ

0

Я думаю, что распределенный кеш был бы полезен в вашей ситуации. Я не использовал распределенный кеш с большими файлами, но, пожалуйста, изучите и сообщите мне, работает ли он для вас.

+0

Спасибо за ваш ответ. Я попробую это и дам вам знать. –

0

Основываясь на ваших ответах на мой комментарий здесь, как я думаю, что это должно быть сделано, если вы реализуете его с помощью простой Map-Reduce -

  1. Создание пользовательского InputFormat, который считывает таблицу Excel.
  2. В качестве части этого вам понадобится RecordReader, который считывает электронную таблицу Excel и выводит местоположение ячейки (например, A1) в качестве ключа и ее содержимого как значения.
  3. После того, как файлы прочитаны, вам необходимо выполнить внутреннее соединение на двух наборах данных с помощью клавиши (которая является ячейкой).
  4. Post join, вы можете сравнить содержимое ячейки.

Может оказаться полезным, если взглянуть на API-интерфейс Apache Pig или Cascading API, который абстрактно упрощает отображение карты.

С уважением, Amit