Основная математическая операция

1

Как выполнить основную математическую операцию с Pig Latin?
Я вошел в оболочку Grunt и попробовал, например, dump 1+2; , но получил

2014-11-28 23: 23: 48,011 [main] ERROR org.apache.pig.tools.grunt.Grunt - ОШИБКА 2997: Исключено IOException. Не обнаружено ранее определенного псевдонима. Пожалуйста, определите псевдоним и используйте оператор "дамп".

Обновить

Выполнение A = 1 + 2 DUMP A Я получаю:

grunt> A = 1 + 2 DUMP A
>> [ENTER]
>> [ENTER]
...
Теги:
hadoop
apache-pig

2 ответа

2
Лучший ответ

Вы не можете использовать оболочку свиньи, как нечто вроде оболочки python. Свинья - это язык потока данных, и он принимает отношение как входной сигнал и производит другое отношение как выход. Свинья свиней обычно организованы в таком виде

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);

Обработать данные, Добавить, diff и div

B = FOREACH A GENERATE f1+10 AS sum, f2-2 AS diff, f3/10 AS div;

Отобразить результат в консоли

DUMP B;

Вы можете выполнить серию свиных штемпелей либо из ракушки, либо с помощью скрипта свиньи

Грунтовая оболочка:

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

pig -x local test.pig (локальный режим)

свинья test.pig (или) свинья -x mapreduce test.pig (режим mapreduce)

Пожалуйста, обратитесь к основной документации на свиньи, это поможет вам собрать больше https://pig.apache.org/docs/r0.13.0/basic.html#artichmetic-ops

0

https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#Arithmetic+Operators

это дает пример арифметических операторов с PIG.

DUMP отображает массив данных результата.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню