복붙노트

[HADOOP] hadoop / map reduce에서 고정 된 수의 라인으로 출력 파일을 만드는 방법은 무엇입니까?

HADOOP

hadoop / map reduce에서 고정 된 수의 라인으로 출력 파일을 만드는 방법은 무엇입니까?

라인 수가 다른 N 개의 입력 파일이 있다고 가정 해 봅시다. 각 출력 파일이 정확히 K 개의 라인 수를 갖는 출력 파일을 생성해야합니다 (

고마워 신

해결법

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

    1.입력 파일에 990 개의 레코드가 있다고 가정하면이 레코드는 각각 100 개 레코드의 9 개 파일과 90 개 레코드의 마지막 파일로 분할되어야합니다. 총 10 개의 파일

    입력 파일에 990 개의 레코드가 있다고 가정하면이 레코드는 각각 100 개 레코드의 9 개 파일과 90 개 레코드의 마지막 파일로 분할되어야합니다. 총 10 개의 파일

    NLineInputFormat을 사용하고 mapred.line.input.format.linespermap을 100으로 설정하십시오.이 방법으로 각 맵퍼는 입력 데이터 세트에서 100 개의 라인을 처리합니다. 감속기 수를 10 (출력 파일 수)으로 설정하십시오.

    매퍼에서 1에서 10 사이의 키 (출력 파일 수)를 내보내고 값을 입력 레코드로 내 보냅니다. 매퍼가 내 보낸 키가 1에서 10 사이의 균형을 이루고 기울어지지 않았는지 확인하십시오.

  2. ==============================

    2.다른 접근 방식은 단일 감속기를 사용하고 multipleoutputformat을 사용하여 여러 개의 출력 파일을 생성하는 것입니다. 이 감속기에서는 카운터를 가지고 필요할 때 출력 파일 이름을 변경할 수 있습니다.

    다른 접근 방식은 단일 감속기를 사용하고 multipleoutputformat을 사용하여 여러 개의 출력 파일을 생성하는 것입니다. 이 감속기에서는 카운터를 가지고 필요할 때 출력 파일 이름을 변경할 수 있습니다.

  3. from https://stackoverflow.com/questions/20575912/how-to-create-output-files-with-fixed-number-of-lines-in-hadoop-map-reduce by cc-by-sa and MIT license