使用apache pig计算每条线的平均值

时间:2014-08-18 22:15:31

标签: hadoop apache-pig average

我正在编写一个应该计算每行平均值的猪脚本。 输入是这样的:

  (11, 10)
  (12, 108)
  (14, 106)
  (40, 101)
  (96, 104)
  (112, 410)

我想计算每行的平均值

average(11,10)
average(12,108)
average(14,106)
average(40,101)
...

我该怎么办?

1 个答案:

答案 0 :(得分:0)

为了计算平均值,Pig有一个名为AVG的内置函数。 AVG将一个包作为参数,因此您需要根据您的值创建一个包。这可以通过下面的脚本完成。

如果您在一行中有两个以上的值,则下面的脚本不介意,因此您可以根据自己的喜好更改A.

A = LOAD 'data.txt' AS (a:int, b:int);
B = FOREACH A GENERATE TOBAG($0..) AS values;
C = FOREACH B GENERATE AVG(values);