我在Pig上工作时在grunt shell中工作。

我有AcolA

我想按A对表colA进行分组,并将其存储在文件grACount中,并将grACount的过滤结果存储在一个名为grACountFilter的文件中。

如果我在grunt shell中编写如下语句:

grA = GROUP A BY colA;
grACount = FOREACH grA GENERATE group as colA, COUNT(A.colA) as countColA;
STORE grACount into 'grACount';
grACountFilter = FILTER grACount BY countColA>15;
STORE grACountFilter into 'grACountFilter';

然后它将为第3行提交一个 map 缩小作业,然后为第5行再次提交,对吗?

而且,当它再次提交第5行的作业时,它将重新计算表,对吗?

我想要的是不必提交两个不同的map reduce作业,并且一次执行所有计算。这可能吗?

最佳答案

Pig中的STORE和DUMP命令将触发作业执行。因此,您不能阻止该行为。您可以将所有STORE命令保持在一起。单个STORE或DUMP命令可能会触发多个mapreduce作业。

脚本到达STORE或DUMP命令后,将执行执行计划。作业数量取决于执行计划。

关于hadoop - 在对Pig使用grunt并调试涉及同一张表的不同操作的脚本时,如何避免使用多个Map Reduce作业?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31687695/

10-16 16:16