Apache pig 清管器:使用条件
我有电影数据库的以下数据集: 收视率:UserID,MovieID,收视率::电影:MovieID,Title::用户:UserID,性别,年龄 现在我加入了收视率和用户。目标是通过F和M两个性别来确定每部电影的评级。也包括F和M至少有20个收视率的电影Apache pig 清管器:使用条件,apache-pig,Apache Pig,我有电影数据库的以下数据集: 收视率:UserID,MovieID,收视率::电影:MovieID,Title::用户:UserID,性别,年龄 现在我加入了收视率和用户。目标是通过F和M两个性别来确定每部电影的评级。也包括F和M至少有20个收视率的电影 data = JOIN myuser BY user, myrating BY user; grouped_users = GROUP data BY (movie,gender); 现在,在分组用户之后,我需要筛选出男女收视率均低于20的电
data = JOIN myuser BY user, myrating BY user;
grouped_users = GROUP data BY (movie,gender);
现在,在分组用户之后,我需要筛选出男女收视率均低于20的电影。我该怎么做
grouped_users_twenty = FILTER grouped_users BY SIZE(grouped_users)>=20;
这是我的逻辑。获取错误。您必须使用而不是
data = JOIN myuser BY user, myrating BY user;
grouped_users = foreach (GROUP data BY (movie,gender)) {
generate
group.movie,
group.gender,
SIZE(data) as user_size
;
};
grouped_users_twenty = FILTER grouped_users BY user_size>=20;
我这样说:分组用户=按(电影、性别)分组数据;分组用户=按计数筛选分组用户(数据.评级)>=20;感谢您提供这段代码片段,它可能会提供一些即时帮助。通过说明为什么这是一个很好的解决问题的方法,正确地解释它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请在回答中添加解释,并说明适用的限制和假设。
grouped_users_twenty = FOREACH grouped_users GENERATE group,COUNT(rating) as rating_count;
final = FILTER grouped_users_twenty BY rating_count >= 20;