2017-06-08 6 views
0

Ich versuche, die folgende Frage herauszufinden.Apache Pig Distinct und Count

Wie viele weibliche Benutzer mindestens eine Bewertung von 4 zur Verfügung gestellt. Ich denke, meine Join und Filter sind korrekt, aber ich kann nicht herausfinden, die deutliche Anzahl Teil Haben versucht, zahlreiche Versionen der unten.

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

Danke Ich habe das versucht und ich bekomme einen Fehler - konnte DISTINCT nicht durch Importe auflösen. –

Antwort

1

Sie müssen GROUP vor COUNT.Ref: COUNT erfordert eine vorhergehende Gruppe ALL-Anweisung für die globale zählt und eine GROUP BY-Anweisung für die Gruppe zählt.

+0

Danke für Ihre Hilfe. Ich musste nach der Bewertung nicht Benutzer-ID gruppieren und es hat funktioniert. –