Вопрос

I have a question about PIG Latin. Is there any way how to invoke some pig script from the other pig script?

I know it is possible to run user defined functions (UDFs) like:

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

But it is not working for pig script. We are counting some different customer parameters and for readibility and reuse it would be great to load some pig snippets, something like:

REGISTER somepigscript.pig;
LOAD somepigscript.pig;

Do you know if there is any functionality like this? Or any UDF?

Thank you and have a good day...

Это было полезно?

Решение

Pig has two commands, RUN and EXEC. They differ in that RUN will execute the Pig script and leave its aliases and properties available for subsequent usage, while EXEC simply executes the script and returns with the calling environment unaltered (but with any new files created on HDFS available).

For example, I have a collection of macros, jars, and properties that I want to set at the beginning of every single script I write. Rather than type them every time, I put that into a Pig script and call RUN /my/script.pig at the beginning of my scripts.

Другие советы

You can use Macros for such things: http://pig.apache.org/docs/r0.11.1/cont.html#macros

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top