[HADOOP] Apache Pig : hadoop fs -text를 사용하여 잘 보이는 파일로드
HADOOPApache Pig : hadoop fs -text를 사용하여 잘 보이는 파일로드
part-r-000 [0-9] [0-9]라는 이름의 탭이있는 필드가 들어있는 파일이 있습니다. hadoop fs -text part-r-00000을 사용하여 볼 수 있지만 돼지를 사용하여로드 할 수는 없습니다.
내가 시도한 것 :
x = load 'part-r-00000';
dump x;
x = load 'part-r-00000' using TextLoader();
dump x;
그러나 그것은 단지 나에게 쓰레기를 준다. 어떻게 돼지를 사용하여 파일을 볼 수 있습니까?
관련성이있는 것은 내 hdfs가 현재 CDH-2를 사용하고 있다는 것입니다. 또한 파일을 로컬에 다운로드하고 part-r-00000 파일을 실행하면 part-r-00000 : data라고 표시되어 로컬에서 압축을 해제하는 방법을 알 수 없습니다.
해결법
-
==============================
1.HDFS 문서에 따르면 hadoop fs -text
은 "zip 및 TextRecordInputStream"데이터에 사용할 수 있으므로 데이터가 이러한 형식 중 하나 일 수 있습니다. HDFS 문서에 따르면 hadoop fs -text
은 "zip 및 TextRecordInputStream"데이터에 사용할 수 있으므로 데이터가 이러한 형식 중 하나 일 수 있습니다. 파일이 압축 된 경우 Hadoop은 일반적으로 HDFS로 출력 할 때 확장자를 추가합니다. 그러나 이것이 없으면 로컬에서 / ungzipping / unbzip2ing / etc를 압축 해제하여 테스트해볼 수 있습니다. 돼지는 자동으로 압축 해제를해야하지만 파일 확장자 (예 : part-r-00000.zip)가 필요할 수 있습니다. - 자세한 정보.
TextRecordInputStream에 너무 확신하지 못합니다. 단지 돼지의 기본 메서드 인 것처럼 들리지만 잘못된 것일 수 있습니다. 나는 빠른 구글을했을 때 돼지를 통해이 데이터를 LOAD하는 것에 대해서는 언급하지 않았다.
최신 정보: 시퀀스 파일이라는 것을 알았으므로 PiggyBank를 사용하여 파일을로드하는 방법은 다음과 같습니다.
-- using Cloudera directory structure: REGISTER /usr/lib/pig/contrib/piggybank/java/piggybank.jar --REGISTER /home/hadoop/lib/pig/piggybank.jar DEFINE SequenceFileLoader org.apache.pig.piggybank.storage.SequenceFileLoader(); -- Sample job: grab counts of tweets by day A = LOAD 'mydir/part-r-000{00..99}' # not sure if pig likes the {00..99} syntax, but worth a shot USING SequenceFileLoader AS (key:long, val:long, etc.);
-
==============================
2.돼지와 함께 시퀀스 파일을 조작 (읽기 / 쓰기)하려면 Twitter의 Elephant-Bird에도 시도해 볼 수 있습니다.
돼지와 함께 시퀀스 파일을 조작 (읽기 / 쓰기)하려면 Twitter의 Elephant-Bird에도 시도해 볼 수 있습니다.
여기에서 읽기 / 쓰기 방법을 찾을 수 있습니다.
사용자 지정 쓰기 가능 파일을 시퀀스 파일로 사용하는 경우 AbstractWritableConverter를 확장하여 사용자 지정 변환기를 구현할 수 있습니다.
Elephant-Bird는 시스템에 Thrift가 설치되어 있어야합니다. 빌드하기 전에 올바른 Thrift 버전을 사용하고 있는지 확인하고 pom.xml에 Thrift 실행 파일의 올바른 경로를 제공하십시오.
<plugin> <groupId>org.apache.thrift.tools</groupId> <artifactId>maven-thrift-plugin</artifactId> <version>0.1.10</version> <configuration> <thriftExecutable>/path_to_thrift/thrift</thriftExecutable> </configuration> </plugin>
from https://stackoverflow.com/questions/12286845/apache-pig-load-a-file-that-shows-fine-using-hadoop-fs-text by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Yarn ResourceManager에없는 슬레이브 노드 (0) | 2019.06.18 |
---|---|
[HADOOP] csv 파일에서 hdfs의 데이터 프레임으로 읽기 (0) | 2019.06.18 |
[HADOOP] MongoDB 데이터를 읽고, Hadoop으로 처리하고, RDBS (MySQL)로 출력 할 수 있습니까? (0) | 2019.06.18 |
[HADOOP] HDFS 파일 감시자 (0) | 2019.06.18 |
[HADOOP] Windows에서 hadoop의 tasktracker 시작 문제 (0) | 2019.06.18 |