Pregunta

Mientras se ejecuta el siguiente script de cerdo que estoy recibiendo un error en la línea 4: Si se trata de GRUPO entonces estoy consiguiendo error. Si el cambio de I 'grupo' A 'grupo' en la línea 4, a continuación, se ejecuta el script.

¿Cuál es la diferencia entre un grupo y otro?

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;
¿Fue útil?

Solución

'grupo' en el caso estrictamente menor en el FOREACH es lo que se recorre / agrupación más.

http://squarecog.wordpress.com / 2010/05/11 / grupo-operador-en-Apache-cerdo / dice:

Cuando una relación grupal, el resultado es una relación nueva con dos columnas: “grupo” y el nombre de la relación original

.

Los nombres de columna son mayúsculas y minúsculas, así que hay que utilizar en minúscula 'grupo' en su FOREACH.

'grupo' en mayúsculas es el operador de agrupación. No se puede mezclar ellos. Así que no hacer eso.

Otros consejos

Normalmente, el GRUPO / Cogroup se utiliza para agrupar la relación por algún grupo key.after que la relación describir la agrupados relation.you puede encontrar EX: describir grp; grp: {grupo: chararray, A: {(nombre: chararray, sesión: chararray, GPA: float)}}.

en el resultado anterior se puede encontrar "grupo".

Si desea realizar alguna operación en relación agrupados (GRP), se debe utilizar el "grupo" no GRUPO.

Licenciado bajo: CC-BY-SA con atribución
scroll top