2

我使用 Java 编写了一个累加器 UDF。当我对未排序的数据运行 UDF 时,Pig (0.13.0)accumulate根据需要调用该方法:

output = FOREACH (GROUP input BY f) {
    GENERATE MyUDF(input);
}

我可以说它正在工作,因为日志声明减速器正在累积模式下运行。

但是,当我应用辅助排序时,Pig 会调用该exec方法。

output = FOREACH (GROUP input BY f) {
    sorted = ORDER input BY f2;
    GENERATE MyUDF(sorted);
}

我担心的是该exec方法同时将整个包放入内存。我的输入太大,无法正常工作。这就是我实现Accumulator接口的原因。

有谁知道为什么第二个示例没有正确使用该accumulate方法?关于如何排除故障的任何想法?

4

0 回答 0