我只想计算2011年每支球队有多少球员。 使用tmID对它进行分组时效果很好。但是,当我尝试计算分组数据时,ERROR 1070会出现。
load_file = load 'Assignment2/basketball_players.csv' using PigStorage(',');
temp = foreach load_file generate
(chararray)$3 AS tmID,
(int)$1 AS year,
(chararray)$0 AS playerID;
fil_data = filter temp by year == 2011;
group_data = group fil_data by tmID;
count_data = foreach group_data generate group, count($1);
dump count_data;
错误信息如下所示。
<file script.pig, line 8, column 48> Failed to generate logical plan. Nested exception: org.apache.pig.backend.executionengine.ExecException: ERROR 1070: Could not resolve count using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]
有人可以帮我解决这个问题吗? THX
答案 0 :(得分:2)
COUNT函数区分大小写。参考:http://pig.apache.org/docs/r0.12.0/func.html#count
试试这个:
count_data = foreach group_data generate group, COUNT($1);
而不是$ 1会建议使用别名fil_data作为更具可读性。
答案 1 :(得分:1)
所有功能都必须是大写的。在任何一种情况下,像foreach,generate by等命令都可以。