我已经试了几天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条答案
按热度按时间1l5u6lss1#
假设您使用的是类似的数据集,一个问题可能是csv文件的第一列(playerid)是字符数组而不是int。
我认为您的join(在您的评论中写的pig查询)可能有问题。
关系c有两列“组/年”和“最大运行时间”。要从a获得playerid,我们必须加入on year和runs。所以,你的亲戚d应该是这样的
有了这个变化,你应该得到每年,最大运行的一年,和球员的球员id。
希望有帮助