복붙노트

[HADOOP] 다른 돼지 스크립트에서 돼지 라틴어 스크립트 호출

HADOOP

다른 돼지 스크립트에서 돼지 라틴어 스크립트 호출

PIG 라틴어에 대한 질문이 있습니다. 다른 돼지 스크립트에서 돼지 스크립트를 호출하는 방법이 있습니까?

사용자 정의 함수 (UDF)를 실행하는 것이 가능하다는 것을 알고 있습니다.

REGISTER myudfs.jar;
A = LOAD 'student_data' AS (name: chararray, age: int, gpa: float);
B = FOREACH A GENERATE myudfs.UPPER(name);
DUMP B;

그러나 돼지 스크립트에서는 작동하지 않습니다. 우리는 몇 가지 다른 고객 매개 변수를 세고 있으며 가독성과 재사용을 위해 돼지 발췌 문장을로드하는 것이 좋습니다.

REGISTER somepigscript.pig;
LOAD somepigscript.pig;

이런 기능이 있는지 아십니까? 아니면 어떤 UDF?

고마워, 좋은 하루 되세요.

해결법

  1. ==============================

    1.Pig에는 RUN과 EXEC라는 두 개의 명령이 있습니다. RUN은 Pig 스크립트를 실행하고 후속 사용을 위해 별칭과 속성을 사용할 수있는 반면 EXEC는 스크립트를 실행하고 호출 환경을 변경하지 않고 반환합니다 (그러나 HDFS에서 생성 된 모든 새 파일 사용 가능)는 다릅니다.

    Pig에는 RUN과 EXEC라는 두 개의 명령이 있습니다. RUN은 Pig 스크립트를 실행하고 후속 사용을 위해 별칭과 속성을 사용할 수있는 반면 EXEC는 스크립트를 실행하고 호출 환경을 변경하지 않고 반환합니다 (그러나 HDFS에서 생성 된 모든 새 파일 사용 가능)는 다릅니다.

    예를 들어 필자가 작성한 모든 스크립트의 시작 부분에 설정할 매크로, 병 및 속성 모음이 있습니다. 매번 타이핑하기보다는 Pig 스크립트에 넣고 스크립트 시작 부분에 RUN /my/script.pig를 호출하십시오.

  2. ==============================

    2.다음과 같은 경우 매크로를 사용할 수 있습니다. http://pig.apache.org/docs/r0.11.1/cont.html#macros

    다음과 같은 경우 매크로를 사용할 수 있습니다. http://pig.apache.org/docs/r0.11.1/cont.html#macros

  3. from https://stackoverflow.com/questions/20636007/invoke-pig-latin-script-from-other-pig-script by cc-by-sa and MIT license