복붙노트

[HADOOP] 텍스트 파일의 하둡 사용자 정의 분할

HADOOP

텍스트 파일의 하둡 사용자 정의 분할

SequenceFile로 변환하려는 상당히 큰 텍스트 파일이 있습니다. 불행히도 파일은 여러 물리적 라인을 통해 실행되는 논리적 라인을 가진 Python 코드로 구성됩니다. 예를 들어 "Blah Blah \ 인쇄 ... ㅋ ㅋ 각 논리 행은 NEWLINE으로 종료됩니다. 누군가가 각 값이 전체 논리 라인 인 Map-Reduce에서 키, 값 쌍을 생성하는 방법을 명확히 할 수 있습니까?

해결법

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

    1.TextInputFormat에 고유 한 변형을 작성해야합니다. 거기에서 논리 줄의 시작을 볼 때까지 줄을 건너 뛰는 새 RecordReader를 만듭니다.

    TextInputFormat에 고유 한 변형을 작성해야합니다. 거기에서 논리 줄의 시작을 볼 때까지 줄을 건너 뛰는 새 RecordReader를 만듭니다.

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

    2.이전에 묻는 질문을 찾지 못했지만 간단한 mapreduce 작업을 통해 라인을 반복하고 StringBuilder에 저장하면됩니다. 새 레코드로 시작하려면 StringBuilder를 컨텍스트로 플러시하십시오. 트릭은 매퍼 클래스의 StringBuilder를 로컬 변수가 아닌 필드로 설정하는 것입니다.

    이전에 묻는 질문을 찾지 못했지만 간단한 mapreduce 작업을 통해 라인을 반복하고 StringBuilder에 저장하면됩니다. 새 레코드로 시작하려면 StringBuilder를 컨텍스트로 플러시하십시오. 트릭은 매퍼 클래스의 StringBuilder를 로컬 변수가 아닌 필드로 설정하는 것입니다.

    여기있어: Hadoop을 사용하여 텍스트 파일의 단락을 단일 레코드로 처리

  3. ==============================

    3.입력 파일을 사전 처리하여 줄 바꾸기를 제거하십시오. SequenceFile을 만드는 목표는 무엇입니까?

    입력 파일을 사전 처리하여 줄 바꾸기를 제거하십시오. SequenceFile을 만드는 목표는 무엇입니까?

  4. from https://stackoverflow.com/questions/6327287/hadoop-custom-split-of-textfile by cc-by-sa and MIT license