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;
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top