복붙노트

[HADOOP] Hadoop으로 여러 입력 형식 축소

HADOOP

Hadoop으로 여러 입력 형식 축소

HDFS에 서로 다른 데이터 형식을 가진 두 개의 파일이 있습니다. 두 가지 데이터 파일을 줄이기 위해 필요한 경우 작업 설정은 어떻게됩니까?

예 : 하나의 파일에서 세계 구분 기호로 공백이 있고 다른 파일에 밑줄이있는 일반적인 단어 수 문제를 상상해보십시오. 필자의 접근 방식에서는 공통 감속기에 공급하는 것보다 다양한 파일 형식에 대해 다른 맵퍼가 필요합니다.

그렇게하는 방법? 아니면 내보다 나은 해결책이 있습니까?

해결법

  1. ==============================

    1.이 정확한 문제를 해결하는 MultipleInputs 클래스를 확인하십시오. 꽤 깔끔합니다. InputFormat과 선택적으로 Mapper 클래스를 전달합니다.

    이 정확한 문제를 해결하는 MultipleInputs 클래스를 확인하십시오. 꽤 깔끔합니다. InputFormat과 선택적으로 Mapper 클래스를 전달합니다.

    Google에서 코드 예제를 찾고있는 경우이 방법이 일반적으로 사용되는 "축소 측 조인"을 검색하십시오.

    반면에 해킹을 사용하는 것이 더 쉬운 경우가 있습니다. 예를 들어, 공백으로 구분 된 파일 집합과 밑줄 구분 된 파일 집합이있는 경우 동일한 매퍼와 TextInputFormat을 모두로드하고 가능한 구분 기호 모두에 토큰 화하십시오. 두 결과 집합에서 토큰 수를 센다. 단어 수 계산 예에서 더 많은 토큰이있는 단어를 선택하십시오.

    두 파일이 같은 구분 기호이지만 표준 열의 수가 다른 경우에도이 방법이 유효합니다. 쉼표로 토큰 화 한 다음 토큰 수를 확인할 수 있습니다. 5 토큰이라면 데이터 세트 A에서, 7 토큰이면 데이터 세트 B에서 나온 것입니다.

  2. from https://stackoverflow.com/questions/10213791/hadoop-to-reduce-from-multiple-input-formats by cc-by-sa and MIT license