[HADOOP] 어떻게 하둡 입력 텍스트 파일에 대한 레코드 구분 기호로 탭을 지정하려면?
HADOOP어떻게 하둡 입력 텍스트 파일에 대한 레코드 구분 기호로 탭을 지정하려면?
내 하둡 M / R 작업의 입력 파일은 기록을 탭 문자 'N \'대신 줄 바꿈의 '\의 t'로 구분 된 텍스트 파일입니다. 이 줄 바꿈을 주위 분할 및 텍스트 파일의 각 줄은 기록으로한다 기본적으로 어떻게 탭 문자를 사용하여 분할 하둡을 지시 할 수 있습니다.
그것을 할 수있는 한 가지 방법은 줄 바꿈 원래 스트림에 모든 탭 변환하는 필터 스트림을 사용하는 사용자 지정 입력 형식 클래스를 사용하는 것입니다. 하지만이 우아한 보이지 않는다.
또 다른 방법은 구분자로 탭 java.util.Scanner을 사용하는 것입니다. 하지만 입력 형식의 클래스에 java.util.Scanner 클래스를 사용하는 방법을 알아낼 수 없습니다.
최선의 방법과 대안은 무엇인가?
해결법
-
==============================
1.값 '\ r에'와 '\ n'을 당신은 탭으로 구분 레코드 TextInputFormat을 사용할 수 있도록 org.apache.hadoop.util.LineReader 클래스에 하드 코딩. 그러나 특별한 LineReader 클래스와 자신의 InputFormat을 구현하기 어렵지 않다. 가장 간단한 해결책은 TextInputFormat, LineRecordReader 및 LineReader 클래스 붙여 넣기 복사 패키지로 이동하고 LineReader 구현을 변경하는 것입니다.
값 '\ r에'와 '\ n'을 당신은 탭으로 구분 레코드 TextInputFormat을 사용할 수 있도록 org.apache.hadoop.util.LineReader 클래스에 하드 코딩. 그러나 특별한 LineReader 클래스와 자신의 InputFormat을 구현하기 어렵지 않다. 가장 간단한 해결책은 TextInputFormat, LineRecordReader 및 LineReader 클래스 붙여 넣기 복사 패키지로 이동하고 LineReader 구현을 변경하는 것입니다.
from https://stackoverflow.com/questions/7271641/how-to-specify-tab-as-a-record-separator-for-hadoop-input-text-file by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 아파치 돼지를 사용하여 파일에서 "문자열 식"을 제거하는 절차 / 코드 무엇을 할 수 있습니까? (0) | 2019.10.09 |
---|---|
[HADOOP] 테이블을 나열 할 때 HBase를 쉘은 오류를 보여줍니다 (0) | 2019.10.09 |
[HADOOP] 어떻게 커버 로스 키 탭에 R을 통해 HIVE와 연결? (0) | 2019.10.09 |
[HADOOP] 하둡 tasktracker를 시작하지 못했습니다 (0) | 2019.10.09 |
[HADOOP] Sqoop을 : SQL 함수를 사용하여 --split-로 가져 오기 (0) | 2019.10.09 |