我是PIG的新手,想要计算我的一列数据的平均值
0
10.1
20.1
30
40
50
60
70
80.1
我写了这个猪脚本
dividends = load 'myfile.txt' as (A);
dump dividends
grouped = group dividends by A;
avg = foreach grouped generate AVG(grouped.A);
dump avg
Run Code Online (Sandbox Code Playgroud)
它将数据解析为
(0)
(10.1)
(20.1)
(30)
(40)
(50)
(60)
(70)
(80.1)
但是平均给出了这个错误
2013-03-04 15:10:58,289 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse:
<file try.pig, line 4, column 41> Invalid scalar projection: grouped
Details at logfile: /Users/PreetiGupta/Documents/CMPS290S/project/pig_1362438645642.log
Run Code Online (Sandbox Code Playgroud)
任何的想法
cya*_*ang 17
该AVG内置功能需要一个袋子作为输入.在您的group陈述中,您当前按值的值对元素进行分组A,但您真正想要做的是将所有元素分组到一个包中.
猪GROUP ALL是你想要使用的:
dividends = load 'myfile.txt' as (A);
dump dividends
grouped = group dividends all;
avg = foreach grouped generate AVG(dividends.A);
dump avg
Run Code Online (Sandbox Code Playgroud)
以下将用于计算平均值:
dividends = load 'myfile.txt' as (A);
grouped = GROUP dividends all;
avg = foreach grouped generate AVG(dividends);
dump avg
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17447 次 |
| 最近记录: |