Вы не можете использовать оболочку свиньи, как нечто вроде оболочки python. Свинья - это язык потока данных, и он принимает отношение как входной сигнал и производит другое отношение как выход. Pig stmts, как правило, организованы в этой форме
1.LOAD stmt to load data from local file system or HDFS file system
2.A series of stmts to process the data using pig built-in function or Custom UDF
3.DUMP stmt to display the data in console, it will take only relation as input(No constant values as you mentioned)
4.STORE stmt to store the output into local file system or HDFS file system
Пример:
input.txt
1,5,10.0
2,6,20.0
3,7,30.0
загрузить файл из локальной файловой системы, используя в качестве разделителя ''
A = LOAD 'input.txt' USING PigStorage(',') AS (f1:int,f2:int,f3:float);
процесса данные, добавлять, диф и DIV
B = FOREACH A GENERATE f1+10 AS sum, f2-2 AS diff, f3/10 AS div;
Показать результат в консоли
DUMP B;
Вы можете выполнить ряд свиньи stmts либо из хрюкать оболочки или через свинки сценарий
Грунтовая оболочка:
grunt> A = LOAD 'input.txt' USING PigStorage(',') AS (f1:int,f2:int,f3:float);
grunt> B = FOREACH A GENERATE f1+10 AS sum, f2-2 AS diff, f3/10 AS div;
grunt> DUMP B;
(11,2,1.0)
(12,3,2.0)
(13,4,3.0)
Свиньи Сценарий:
1.Add the above three lines of pig stmt into a file Ex: test.pig
2.Run from terminal
свиньи -x локальная test.pig (локальный режим)
свиньи test.pig (или) свиньи -x MapReduce тест.свинья (режим MapReduce)
Пожалуйста, обратитесь к основной документации свинья, это поможет вам намного больше https://pig.apache.org/docs/r0.13.0/basic.html#artichmetic-ops