2013-05-13 5 views
1

У меня есть два списка людей из разных событий; Я бы хотел найти подходящие имена людей среди этих списков, а также соответствующие компании. Я понимаю, что потенциально в каждом списке будут люди с одинаковым именем, которые не являются одними и теми же людьми, но это поможет найти совпадения.Hadoop - поиск совпадающих имен в двух списках клиентов

Первый Пример списка:
Имя, Компания, Название
John Doe, ACME Corporation, слон тренер
Джейн Смит, ACME Corporation, генеральный директор
Джон Смит, Widgets-R-Us, Дворник
+ 10000-х строк

Второй список Пример:
Имя, Компания
F красный Smith, ACME Corporation
Джон Смит, Widgets-R-Us
Джон Смит, компания XYZ
Джейн Смит, компания XYZ
+ 10000-х строк

Желаемая Выходные
Matching Имена:
Джон Смит
Джейн Смит

Matching компаний:
ACME Corporation
Widgets-R-Us

Я запускаю его в среде AWS и новый для Hadoop. Любой язык программирования прекрасен. Я знаю, как это сделать в Excel, но хочу иметь возможность масштабировать его со временем с большим количеством списков имен (каждый в своем собственном файле CSV).

Благодарим вас!

+0

Что вы пробовали? Вы не можете точно спросить людей о том, чтобы создать для вас все приложение для андроида - сделайте это сами, и когда и если вы столкнетесь с конкретной проблемой на этом пути, вернитесь, и мы будем рады помочь. Я бы посоветовал попробовать начать учебное пособие по описанию слов в java, чтобы начать работу. – Quetzalcoatl

+0

Спасибо. Я использовал число слов AWS. Я объединил два списка в один файл без других столбцов и удалил все пробелы из имен (выглядел как FirstnameLastName). Это дало мне количество имен, которые встречаются чаще всего, что было достаточно близко, чтобы получить имена и ввести ручные поисковые слова. Мне не удалось понять, как настроить образец подсчета слов, который, я думаю, мне нужен еще немного, чтобы понять все его части. Как только я получу песочницу, я думаю, что смогу поиграть с остальными. Спасибо. – user2379638

+0

У кого-нибудь есть хорошая ссылка на способ, с помощью которого вы можете перейти от модели wordcount образца AWS к тому, чтобы код находился в месте, где вы можете его изменить? Еще раз спасибо! – user2379638

ответ

0

Вам нужна реализация Mapper, в которой вы испускаете имя и название компании как текст и IntWritable.
protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException{ /*Some logic to derive the person name or the Company name.*/ String name = value.split(',')[0]; context.write(new Text(value),new IntWritable(1)); }

Реализация метода снижения в Reducer будет что-то похожее на
public void reduce(Text key, Iterable<IntWritable> values,Context context)throws IOException, InterruptedException{ int count = 1; for(IntWritable val: values){count++;} //You would all the unique names with no of times it is repeated. context.write(key,new IntWritable(count)); }
Надеюсь, что это помогает.

Смежные вопросы