2017-06-08 105 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

感謝您的幫助。我不得不按用戶組進行評分,並且它工作。 –