PIG聚合函数 - OutOfMemory:Java堆空间

时间:2013-09-11 23:21:44

标签: java hadoop apache-pig

以下失败:

data = FOREACH rawData GENERATE (int) col;
aggregate = FOREACH data GENERATE MIN(col);

我能以某种方式将上述内容付诸实践吗?

我试过了:

data = FOREACH rawData GENERATE 1 dummy, (int) col;
grouped = GROUP data BY dummy;
aggregate = FOREACH grouped GENERATE MIN(data.col)

现在我得到了:java.lang.Exception: java.lang.OutOfMemoryError: Java heap space

总共有11行整数(1..11)...所以不确定为什么我会得到一个outOfMemoryError?

我正在从命令行pig -f myscript.pig

运行脚本

PIG新手所以如果我需要设置一些内容请告诉我......

1 个答案:

答案 0 :(得分:0)

您的直觉是正确的,因为您需要先使用MIN对数据进行分组。您可以将GROUP ALL用于此目的:

data = FOREACH rawData GENERATE (int) col;
grouped = GROUP data ALL;
aggregate = FOREACH grouped GENERATE MIN($1);

GROUP操作后,$0包含该组,第一列为$1,第二列为$2,依此类推。