2014-12-06 67 views
1

计算平均考虑一个数据文件:猪拉丁

4, 8, 2 
5, 2, 5 
3, 1, 7 

我想计算每列的平均值。最简单的方法是什么?
如果我有20列,如果有一个循环,以便我不必为每个列手动计算它?

+2

Igpay拉丁语是不是一个非常好的ogrammingPay语言平台。 – 2014-12-06 19:05:46

+0

@HotLicks:你可以在这里看到:https://pig.apache.org/docs/r0.14.0/basic.html这是官方的名字。你会怎样称呼编程语言? – user1170330 2014-12-06 19:13:20

回答

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) 
+0

这给我的平均线:(4 + 8 + 2)/ 3。我需要列的平均值:(4 + 5 + 3)/ 3。 – user1170330 2014-12-06 18:37:23

+0

@ user1170330,更新了解决方案。 – 2014-12-07 04:12:13