/*calculating average for itemssold(int) grouped by city */
a = LOAD 'sales.txt' USING PigStorage(','); /*loading sales data and it has 50 fields that are comma separated*/
b = FOREACH a GENERATE $3 as city:chararray, $4 as itemssold:int;/*defining schema for needed fields*/
c = GROUP b BY city; /*grouping by city*/
d = FOREACH c GENERATE group,AVG(b.itemssold); /*calculating average*/
dump d; /*writing output*/
在这里,我试图计算按城市分组的项目的平均值。
错误:计算平均值时出错。
有人能帮我纠正这个错误吗?
注意:由于sales.txt有50个用逗号分隔的字段,我不想在将sales.txt加载到关系本身时为所有字段定义模式。
2条答案
按热度按时间gxwragnw1#
上面的代码起作用了。在关系bgenerate中,我试图定义模式而不是强制转换,因此pig感到困惑。现在纠正了这一点&它奏效了。谢谢大家的建议。
ogq8wdun2#
可能您的数据包含某些缺少的值,请先尝试按以下方式对其进行筛选: