2017-06-08 103 views
0

我想弄清楚下面的问题。阿帕奇猪不同和计数

有多少女性用户提供了至少一个等级4.我认为我的连接和过滤器是正确的,但我无法弄清楚计数部分已经尝试了以下的众多版本。

a = load '/user/pig/movie' AS (userid:int, movieid:int, rating:int, timestamp:chararray); 
b = load '/user/pig/reviewer' using PigStorage('|') AS (userid:int, age:int, gender:chararray, occupation:chararray, zip:chararray); 
a1 = filter a by rating == 4; 
b1 = filter b by gender == 'F'; 
c = join a1 by userid, b1 by userid; 
d = FOREACH c GENERATE COUNT(DISTINCT(userid)); 
dump d; 
+0

谢谢我试过,我得到一个错误 - 无法使用导入来解决DISTINCT。 –

回答

1

你必须GROUP COUNT.Ref前:COUNT需要前一组全球计算所有声明和GROUP BY语句组数。

d = GROUP c BY userid; 
e = FOREACH d GENERATE COUNT(DISTINCT(b1.userid)); 
dump e; 
+0

感谢您的帮助。我不得不按用户组进行评分,并且它工作。 –