2013-05-24 5 views
3

* .tar.gz 파일 묶음에서 돼지를 실행하는 경우 PigStorage는 압축 해제를 처리하지만 tar 파일의 헤더 행은 처리되지 않습니다. 이 문제를 처리 할 수있는 간단한 방법이 있습니까? 또는 내 자신의 RecordReader를 작성해야합니까? 그리고이게 어떤 모습일까요?돼지의 타르 헤더 처리

답변

5

tar를 사용하여 즉시 헤더를 정리할 수 있습니다. 돼지 스크립트에서 다음을 수행하십시오.

--Call to tar that reads from stdin and outputs to stdout 
DEFINE CLEANTAR `tar xvf - -O`; 

--Now, remove tar headers from your data 
cleaned = STREAM mydata THROUGH CLEANTAR; 

EDIT : 다음 대안을 추가했습니다.

또한 나오지 사용하여 타르 헤더를 제거 할 수 있습니다

--Remove tar headers using sed 
DEFINE CLEANTAR `sed 's/[^\n]*\o000//g'`; 

--Now, remove tar headers from your data 
cleaned = STREAM mydata THROUGH CLEANTAR;