Hallo Experten,Apache PIG - Count (*) Gruppe von ID und Erstellung eines Rankings
Ich habe diesen Datensatz:
Field_A Field_B DATE
John 1 01-01-2016
John 1 05-01-2016
Cate 1 05-01-2016
Cate 4 01-01-2016
Cate 6 05-01-2016
Perdi 4 01-01-2016
Und ich versuche, die Grafen zu berechnen (*) von jedem Feld_A und erstellen einen Rang basierend auf Feld A und Datum. Grundsätzlich möchte ich dies zurück:
Field_A Count Rank Field_B
John 2 1 1
John 2 2 1
Cate 3 3 1
Cate 3 4 4
Cate 3 3 6
Perdi 1 5 4
Dafür habe ich mit diesem Code bin versucht:
DATA = load '...'
AS
(Field_A:Int,
FIELD_B:Int,
DATE:CHARARRAY);
A = rank DATA BY Field_A;
B = GROUP A BY $0;
C = foreach B {
CNT = COUNT(A.Field_A);
generate $0, CNT;
}
D = join A by $0, C by $0;
E = rank D BY DATE,Field_A DENSE;
F = foreach E generate $0 AS RANK,Field_A,CNT;
DUMP F;
Aber ich bin immer folgende Fehlermeldung:
<file script.pig, line 35, column 69> Invalid field projection. Projected field [CNT] does not exist in schema;
Wie kann ich löse das?
Vielen Dank!