考虑一个数据文件:
4, 8, 2
5, 2, 5
3, 1, 7
我想计算每列的平均值。最简单的方法是什么?
如果我有20列,是否有循环,那么我不必手动为每列计算它?
答案 0 :(得分:2)
你能试试吗?
A = LOAD 'input.txt' USING PigStorage(',') AS(a,b,c);
B = FOREACH A GENERATE AVG(TOBAG(*));
DUMP B;
<强>输出:强>
(4.666666666666667)
(4.0)
(3.6666666666666665)
更新:每列的平均值
A = LOAD 'input.txt' USING PigStorage(',') AS(a,b,c);
B = GROUP A ALL;
C = FOREACH B GENERATE AVG(A.a),AVG(A.b),AVG(A.c);
DUMP C;
<强>输出:强>
(4.0,3.6666666666666665,4.666666666666667)