2017-02-18 26 views
1

Я получаю следующую ошибку при запуске этого скрипта PIG .... Пожалуйста, помогите !!! Спасибо заранее.Ошибка скрипта Pig при использовании SUM()

"ERROR 1000: Error during parsing. Scalars can be only used with projections" 

MOVIES = LOAD '/MOVIES' using PigStorage(',') as (mid:double, mn:chararray, yr:int, rt:float, dr:int); 

Filter11 = filter MOVIES by $2 >= 1950; 

Filter12 = filter Filter11 by $2 <= 1960; 

Group1 = group Filter12 by yr; 

Count1 = foreach Group1 generate group, COUNT(Filter12); 

Sum1 = foreach Count1 generate SUM(Group1); 

DUMP Sum1; 
+0

Что вы пытаетесь достичь здесь? – bartektartanus

+0

Функция SUM должна выполняться на одном из столбцов, определенных в MOVIES. –

ответ

0

Объединить два условия фильтра и на последней стадии, суммировать отсчеты т.е. COUNT (Filter11) или $ 1.

MOVIES = LOAD '/MOVIES' using PigStorage(',') as (mid:double, mn:chararray, yr:int, rt:float, dr:int); 
Filter11 = filter MOVIES by ($2 >= 1950 and $2 <= 1960); 
Group1 = group Filter11 by yr; 
Count1 = foreach Group1 generate group, COUNT(Filter11); 
Sum1 = foreach Count1 generate SUM($1); 
DUMP Sum1;