java - PIG 聚合函数 - OutOfMemory : Java Heap Space

标签 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 的新手,所以如果我需要设置一些东西,请告诉我...

最佳答案

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

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

GROUP 操作后,$0 包含组,$1 第一列,$2 第二列, 等等。

关于java - PIG 聚合函数 - OutOfMemory : Java Heap Space,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18752926/

相关文章:

hadoop - 如何在 grunt 模式下从 DUMP 中断 PIG -ing 一个巨大的文件/变量?

linux - 无法运行存在的文件

java - 为什么Java中这段代码会抛出nullpointerException?

java - 比较 int 和 Java 中的字符常量

java - 如何在 Hortonworks 沙盒 Hadoop 平台中运行 mapreduce 作业

hadoop - 如果值跨边界存储,如何在 mapreduce 程序中创建键值对?

hadoop - 确实从hdfs导入数据到hbase创建了一个副本

java - 为什么我得到 org.hibernate.MappingException : Could not instantiate id generator?

java - Java 中的事件驱动 Web 应用程序?

java - Hadoop 映射器直接写入输出。 (Reducer 写入映射器输出)