문제

리듀서 없이 매퍼(Python 스크립트)만 사용하여 긴 출력 파일을 만드는 대신 각 출력 줄에 대해 키를 파일 이름으로 사용하여 별도의 파일을 출력하려면 어떻게 해야 합니까?

도움이 되었습니까?

해결책

Python 파일 기능을 사용하여 로컬 파일 시스템에 텍스트 파일에 쓸 수 있거나 HDFS를 사용하려는 경우 중고품 API.

다른 팁

입력 및 출력 형식 클래스는 -inputformat 및 -outputformat 명령줄 매개변수를 사용하여 대체할 수 있습니다.

이를 수행하는 방법에 대한 한 가지 예는 다음에서 찾을 수 있습니다. 덤보 프로젝트, 는 스트리밍 작업을 작성하기 위한 Python 프레임워크입니다.여러 파일에 쓰는 기능이 있으며 내부적으로 출력 형식을 자매 프로젝트의 클래스로 대체합니다. 깃털 - fm.last.feathers.output.MultipleTextFiles.

그런 다음 리듀서는 튜플을 키로 내보내야 하며, 튜플의 첫 번째 구성 요소는 키/값 쌍이 있는 파일을 작성해야 하는 디렉터리의 경로입니다.리듀서 수와 애플리케이션에 따라 여전히 여러 파일이 있을 수 있습니다.

dumbo를 살펴보는 것이 좋습니다. Python에서 Hadoop의 Map/Reduce 프로그램을 더 쉽게 작성할 수 있는 많은 기능이 있습니다.

스트리밍을 사용할 때 outputformatClass를 교체 할 수 있습니까? 기본 Java 구현에서는 MultipletexToutPutformat 클래스를 확장하고 출력 파일의 이름을 지정하는 메소드를 수정합니다. 그런 다음 구현을 JobConf의 setoutputformat 메서드로 새 outputformat로 정의하십시오.

스트리밍에서도 가능하다면 확인해야합니다. 나는 donno :-/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top