я анализирую лог-файлы пользователи кластера с помощью следующего кода в свинью:SUM, AVG, в Свинье не работает
t_data = load 'log_flies/*' using PigStorage(',');
A = foreach t_data generate $0 as (jobid:int),
$1 as (indexid:int), $2 as (clusterid:int), $6 as (user:chararray),
$7 as (stat:chararray), $13 as (queue:chararray), $32 as (projectName:chararray), $52 as (cpu_used:float), $55 as (efficiency:float), $59 as (numThreads:int),
$61 as (numNodes:int), $62 as (numCPU:int),$72 as (comTime:int),
$73 as (penTime:int), $75 as (runTime:int), $52/($62*$75) as (allEff: float), SUBSTRING($68, 0, 11) as (endTime: chararray);
---describe A;
A = foreach A generate jobid, indexid, clusterid, user, cpu_used, numThreads, runTime, allEff, endTime;
B = group A by user;
f_data = foreach B {
grp = group;
count = COUNT(A);
avg = AVG(A.cpu_used);
generate FLATTEN(grp), count, avg;
};
f_data = limit f_data 10;
dump f_data;
код работает для group and COUNT
но когда я включаю AVG и SUM, он показывает ошибку:
ОШИБКА org.apache.pig.tools.grunt.Grunt - ОШИБКА 1066: Не удалось открыть итератор для псевдонима f_data
Я проверил типы данных , Все в порядке. Есть ли у вас какие-либо предложения, где я его пропустил? Спасибо заранее за вашу помощь.
У вас есть отношение с именем A, вы можете изменить его и попробовать. –
Я думаю, что такая же проблема происходит с COUNT –
Извините, не COUNT, ее функция SUM –