为什么我的Pig Accumulator UDF不能在累加器模式下运行?

时间:2015-09-24 15:25:39

标签: java apache-pig udf

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

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

我可以告诉它它正在工作,因为日志声明reducer在累积模式下运行。

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

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

我担心的是exec方法同时将整个包放入内存中。我的输入太大,无法工作。这就是我实施Accumulator界面的原因。

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

0 个答案:

没有答案