Apache pig 清管器:使用条件

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的电

我有电影数据库的以下数据集:

收视率: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的电影。我该怎么做

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;