2017-03-10 5 views
0

나도 같은 스키마를 준수 내 콘텐츠가 포함 된 다음과 같은 폴더 구조가 - 나는 & 프로세스 개별 파일을로드 할 수 JSONLoader를 사용하는 돼지 스크립트를 구현 한아파치 돼지 부하 여러 파일

/project/20160101/part-v121 
/project/20160105/part-v121 
/project/20160102/part-v121 
/project/20170104/part-v121 

합니다. 그러나 날짜가 지정된 폴더 아래의 모든 파일을 읽으려면 범용으로 만들어야합니다.

는 지금은 다음과 같은 사용하여 파일 경로를 추출하는 데 성공했다 -

hdfs -ls hdfs://local:8080/project/20* > /tmp/ei.txt 
cat /tmp/ei.txt | awk '{print $NF}' | grep part > /tmp/res.txt 

지금 내 프로그램이 모든 파일에 실행되도록 내가 돼지 스크립트에이 목록을 통과 할 방법을 알아야합니다.

답변

0

LOAD 문에 정규식 경로를 사용할 수 있습니다.

귀하의 사례에서 다음 내용이 도움이 될 것입니다. 문제가 발생하면 알려주십시오.

A = LOAD 'hdfs://local:8080/project/20160102/*' USING JsonLoader(); 

입력 디렉토리에서 .pig_schema (JsonStorage에서 생산)라고 가정합니다.

참조는 : https://pig.apache.org/docs/r0.10.0/func.html#jsonloadstore

+0

이전을 언급해야한다. com.twitter.elephantbird.pig.load.JsonLoader를 사용하고 있습니다. 이것은 코끼리 새도 마찬가지입니다. – user1619355

+0

확실하지 않음, 시도 해보기 –