在运行以下猪脚本时,我会在LINE4中遇到错误:如果是组,那么我会遇到错误。如果我从LINE4中的“组”更改为“组”,则脚本正在运行。

组和组有什么区别?

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;
有帮助吗?

解决方案

在foreach中,严格较低的情况是您正在循环/分组的东西。

http://squarecog.wordpress.com/2010/05/11/group-operator-in-apache-pig/ 说:

当您对A分组关系时,结果是一个新的关系,其中有两个列:“组”和原始关系的名称。

列名称敏感,因此您必须在foreach中使用较低的“组”。

在高层情况下,“小组”是分组操作员。你不能混合它们。所以不要那样做。

其他提示

通常,组/cogroup用于通过某些键进行分组。分组后,关系描述分组关系。 grp:{group:chararray,a:{(名称:chararray,session:chararray,gpa:float)}}}。

在上述结果中,您可以找到“组”。

如果要对分组关系(GRP)执行一些操作,则应使用“组”而不是组。

许可以下: CC-BY-SA归因
scroll top