简单猪任务期间的错误

时间:2013-06-11 18:42:48

标签: join foreach apache-pig

我一直在尝试猪几天,我没有得到它的支持。我正在尝试做简单的练习任务,但无济于事。目标是创建一条记录,显示每年每个ID的最大运行次数。所以我开始:

A = LOAD 'pig/input/Batting.csv' using PigStorage(',') as (ID:int, year:int, stint:chararray, team:chararray, league:chararray, games:int, games_bat:int, atbat:int, runs:int); B = GROUP A by year; C = FOREACH B generate group, MAX(A.runs) as maxruns;

我认为直到现在这一切都进展顺利,但在以下情况下它完全搞砸了:

D = JOIN A by year, C by year; E = FOREACH D generate group, D.(group, ID), maxruns; store E into 'batting_result';

任何有关哪个方向的提示或想法都将非常感激。

1 个答案:

答案 0 :(得分:0)

假设您正在使用类似的dataset,一个问题可能是来自csv文件的第一列(playerId)是chararrray而不是int。

我认为你的加入可能有问题(在评论中写的猪查询中)。

关系C,有两列group / year和maxruns。 要从A获得playerId,我们必须加入年份并运行。 所以,你的关系D看起来应该是

D = JOIN A by (year,runs), C by (group,maxruns); 

通过这种改变,你应该获得每年,那一年的最大游戏次数以及玩家的玩家ID。

希望有所帮助