2016-08-11 4 views
0

단일 열에 대한 데이터 처리를 돕기 위해 돼지 스크립트에 동적으로 전달하려는 ID 목록이 늘어납니다.PIG : N 매개 변수 값을 동적으로 전달하는 방법

수동으로 매개 변수 값을 전달하고 있는데, 이는 확장 가능하지 않습니다.

명령 EX :

pig --param id1=123 id2=456 id3=789 get foo.pig 

스크립트 예

A = load '$INPUT' using AvroStorage(); 
B = foreach A generate value.rawData#'id' as user_id:chararray; 
C = FILTER B BY user_id == '$id1' or user_id == '$id2' OR user_id == '$id3'; 
DUMP C; 

가 어떻게 동적 N 매개 변수 값을 전달하고는 동일한 열에 대한 지역 사업자에 적용 할 수 있습니까? 내가 것이 문제를 해결해야하는 경우

답변

0

는 : -

1> 간단한 텍스트 파일을 만듭니다 (예를 들어 id.txt)과에 뉴스 ID를 추가 계속.

2>에 $ INPUT 파일을 가입 내 돼지 스크립트 내부 id.txt 사용하여 레코드를 자동으로 필터링됩니다 ID가 발견되지 않는 경우 : -

A = load '$INPUT' using AvroStorage(); 
A = foreach A generate value.rawData#'id' as user_id:chararray; 
B = load 'id.txt' using PigStorage as (userId:chararrray); 
C = JOIN A by user_id B by userId ; 
-- after above JOIN C will only contain records which has user_id in both files 
DUMP C; 
관련 문제