Pig scritto il codice di errore?
-
16-10-2019 - |
Domanda
Durante l'esecuzione del sottostante script di maiale sto ottenendo un errore di Line4: Se è GROUP allora sto ottenendo l'errore. Se cambio da TO 'gruppo' 'Gruppo' in line4, lo script è in esecuzione.
Qual è la differenza tra gruppo e gruppo?
LINES = LOAD '/user/cloudera/datapeople.csv' USING PigStorage(',') AS ( firstname:chararray, lastname:chararray, address:chararray, city:chararray, state:chararray, zip:chararray );
WORDS = FOREACH LINES GENERATE FLATTEN(TOKENIZE(zip)) AS ZIPS;
WORDSGROUPED = GROUP WORDS BY ZIPS;
WORDBYCOUNT = FOREACH WORDSGROUPED GENERATE GROUP AS ZIPS, COUNT(WORDS);
WORDSSORT = ORDER WORDBYCOUNT BY $1 DESC;
DUMP WORDSSORT;
Soluzione
'gruppo' in caso strettamente inferiore nel foreach è la cosa che stai looping / raggruppamento sopra.
http://squarecog.wordpress.com / 2010/05/11 / gruppo-operatore-in-apache-maiale / dice:
Quando si gruppo una relazione, il risultato è un nuovo rapporto con due colonne: “gruppo” e il nome della relazione originale
.
I nomi delle colonne sono case sensitive, quindi bisogna usare minuscole 'gruppo' nel vostro foreach.
'GROUP' maiuscola è l'operatore di raggruppamento. Non si possono mescolare. Quindi non farlo.
Altri suggerimenti
Normalmente l'GROUP / COGROUP viene utilizzato per raggruppare la relazione da alcuni key.after si raggruppa il rapporto descrive la raggruppati relation.you può trovare EX: descrivere grp; grp: {gruppo: chararray, A: {(nome: chararray, sessione: chararray, GPA: float)}}.
nel risultato di cui sopra è possibile trovare "gruppo".
se si desidera eseguire alcune operazioni sul rapporto raggruppato (GRP), è necessario utilizzare il "gruppo" non GROUP.