2014-02-27 2 views
1

데이터베이스 A와 B 사이의 일치를 찾기 위해 축소면 조인을 구현합니다. 데이터 세트의 두 파일 모두 한 줄에 json 객체를 포함합니다. 조인 키는 각 레코드의 이름 속성이므로 매퍼는 json의 이름을 추출하여이를 키로 전달하고 json 자체를 값으로 전달합니다. 감속기는 동일 또는 유사한 사람 이름에 대해 jsons 오브젝트를 병합해야합니다.문자열 키로 Hadoop join

문제는 문자열 유사성 매칭 알고리즘을 사용하여 키를 그룹화해야한다는 것입니다. 예를 들어 John White는 John White Lennon과 동일하게 간주되어야합니다.

그룹화 비교기를 사용하여이를 시도했지만 예상대로 작동하지 않습니다.

어떻게 구현할 수 있습니까?

미리 감사드립니다.

답변

1

여기에서 요청하는 내용은 세트 유사 조인으로 설명 할 수 있습니다. 토큰 세트, 또는 각 라인의 n-gram. research paper은 MapReduce에서이를 달성하는 방법을 설명합니다. 유용하다고 생각하길 바랍니다.

+0

MapReduce의 개념을 오해 한 것 같습니다. Hadoop이 키를 그룹화하는 방법을 재정의하는 방법이 없습니까? 예를 들어 2 차 정렬을 구현할 때 기본적으로 compareTo 메소드 인 자연 키에 의해서만 그룹화가 수행되도록 설정할 수 있으므로이 그룹화는 문자열 유사성 매칭 알고리즘으로 수행 할 수 있다고 생각했습니다. –

+0

종이가 매우 유용하게 보입니다. 고맙습니다. 나중에 읽어 보겠습니다. 그러나 나는 혼란스럽고 호기심이 많아서 무엇을 잘못했는지 또는 어떤 개념을 통과 시켰는지를 알고 있습니다. 나는 감속기 하나만을 사용하기 때문에 커스텀 파티셔너는 아무런 효과가 없을 것입니다. –

+0

사실입니다. 나는 당신의 다른 질문을보고 나의 이전 코멘트를 삭제했습니다. – vefthym

관련 문제