2017-06-08 21 views
0

私は次の質問を理解しようとしています。Apache Pig DistinctとCount

4人以上の評価を得た女性ユーザーは何人ですか?私の参加者とフィルタは正確だと思いますが、別の人数を把握することはできません。

COUNT.Ref前にグループにあなたが持っている
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

COUNTは、グループカウントのための声明BYグローバルカウントおよびグループのすべてのステートメント前のGROUPが必要です。

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

ご協力いただきありがとうございます。私はユーザーIDではなく、評価することによってグループ化しなければならなかった。 –