2013-05-13 4 views
1

다른 이벤트의 사람들이 두 명 있습니다. 나는 그 목록들 사이의 사람들의 일치하는 이름과 일치하는 회사를 찾고 싶습니다. 나는 잠재적으로 동일한 명단이 아닌 각 명단에 같은 이름을 가진 사람들이있을 것이라는 것을 이해하지만 그것은 성냥을 찾는 것을 도울 것입니다.Hadoop - 두 고객 목록에서 일치하는 이름 찾기

첫 번째 목록 예 : 제목
홍길동, ACME 공사, 코끼리 조련사
제인 스미스, ACME 공사, CEO
존 스미스, 위젯-R-소개, 관리인

이름, 회사 행 + 10,000의

두 번째 목록 예 :
이름, 회사
F 레드 스미스, ACME 공사
존 스미스, 위젯-R-소개
존 스미스, 회사 XYZ
제인 스미스, 회사 XYZ 행

원하는 출력
일치하는 이름의
+ 10,000의 :
존 스미스
제인 스미스

일치 회사 :
ACME 공사
위젯 -R-Us

AWS 환경에서 실행 중이며 Hadoop을 처음 사용하고 있습니다. 모든 프로그래밍 언어가 좋습니다. Excel에서이 작업을 수행하는 방법을 알고 있지만 더 많은 이름 목록 (각자 CSV 파일에 있음)으로 시간의 경과에 따라이를 확장 할 수 있기를 원합니다.

감사합니다.

+0

무엇을 시도 했습니까? SO 사람에게 당신에게 전체 애플리케이션을 빌드하도록 요청할 수는 없습니다. 직접 해보십시오. 그럴 때마다 구체적인 문제가 발생하면 다시 방문하십시오. 우리는 기꺼이 도와 드리겠습니다. 자바에서 hadoop 단어 카운트 튜토리얼을 시작하는 것이 좋습니다. – Quetzalcoatl

+0

감사합니다. AWS 샘플 단어 수를 사용했습니다. 두 개의 목록을 다른 열이없는 하나의 파일로 병합하고 이름에서 모든 공백을 제거했습니다 (FirstnameLastName처럼 보임). 이로 인해 가장 자주 발생하는 이름이 나에게 쏟아져 나왔습니다.이 이름은 인기있는 이름을 얻고 수동 검색을 수행하기에 충분했습니다. 단어 개수 샘플을 조정하는 방법을 알아 내는데 어려움을 겪었습니다. 모든 조각을 이해하기 위해 더 많은 파기가 필요하다고 생각합니다. 일단 내가 작동하는 샌드 박스가 생기면 나머지 작업을 할 수있을 것입니다. 고맙습니다. – user2379638

+0

AWS 샘플 단어 계산 모델에서 수정할 수있는 위치에 코드가있는 방법에 대한 좋은 링크가있는 사람이 있습니까? 다시 감사합니다! – user2379638

답변

0

이름 및 회사 이름을 텍스트 및 IntWritable로 내보내는 Mapper 구현이 필요합니다.
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)); }

감속기의 감소 방법의 구현이 도움이
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)); }
희망과 비슷한 것이다.