파일 이름의 일부로 날짜 스탬프가 포함 된 파일 집합에서 데이터를 처리 중입니다. 파일 내의 데이터에는 날짜 스탬프가 없습니다. 파일 이름을 처리하고 스크립트 내의 데이터 구조 중 하나에 추가하고 싶습니다. 돼지 라틴어 (PigStorage의 확장 기능)에서 그렇게 할 수있는 방법이 있습니까? 아니면 Perl 등을 사용하여 모든 파일을 사전에 처리해야합니까?Pig Latin 스크립트에 현재 입력 파일 이름을 통합하려면 어떻게해야합니까?
-- Load two fields from file, then generate a third from the filename
rawdata = LOAD '/directory/of/files/' USING PigStorage AS (field1:chararray, field2:int, field3:filename);
-- Reformat the filename into a datestamp
annotated = FOREACH rawdata GENERATE
REGEX_EXTRACT(field3,'*-(20\d{6})-*',1) AS datestamp,
field1, field2;
참고 LOAD 문에서 특별한 "파일 이름"데이터 형식 :
는 나는 다음과 같은 일을 구상. 데이터가로드되면 소스 파일 이름으로 돌아 가기에는 너무 늦기 때문에 거기에서 일어날 필요가있는 것처럼 보입니다.