Question

Lors de l'exécution du script ci-dessous cochon Je reçois une erreur dans line4: S'il est alors GROUPE j'obtiens l'erreur. Si le changement de I « GROUPE » « groupe » TO line4, le script est en cours d'exécution.

Quelle est la différence entre le groupe et GROUP?

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;
Était-ce utile?

La solution

« groupe » en cas strictement inférieur dans la FOREACH est la chose que vous Looping / regroupement sur.

http://squarecog.wordpress.com / 2010/05/11 / groupe-opérateur en apache-porc / dit:

  

Lorsque vous groupez une relation, le résultat est une nouvelle relation avec deux   colonnes: « groupe » et le nom de la relation originale

.

Les noms de colonnes sont sensibles à la casse, donc vous devez utiliser « groupe » minuscules dans votre FOREACH.

« groupe » en majuscules est l'opérateur de regroupement. Vous ne pouvez pas les mélanger. Donc, ne pas le faire.

Autres conseils

Normalement, le GROUPE / COGROUP est utilisé pour regrouper la relation par certains key.after vous groupez la relation décrivez groupés relation.you peut trouver EX: décrire grp; grp: {groupe: chararray, A: {(nom: chararray, session: chararray, gpa: float)}}.

dans le résultat ci-dessus, vous pouvez trouver « groupe ».

si vous voulez effectuer une opération sur la relation groupée (grp), vous devez utiliser le "groupe" non GROUP.

Licencié sous: CC-BY-SA avec attribution
scroll top