我一直在尝试猪几天,我没有得到它的支持。我正在尝试做简单的练习任务,但无济于事。目标是创建一条记录,显示每年每个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';
任何有关哪个方向的提示或想法都将非常感激。
答案 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。
希望有所帮助