0

在处理 Pig 时,我正在 grunt shell 中工作。

我有A桌子colA

我想对表进行分组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 行提交地图缩减作业,然后再次为第 5 行提交地图缩减作业,对吗?

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

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

4

1 回答 1

0

pig 中的 STORE 和 DUMP 命令将触发作业执行。所以你不能阻止这种行为。您可以将所有 STORE 命令放在一起。单个 STORE 或 DUMP 命令可能会触发多个 mapreduce 作业。

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

于 2015-07-29T12:55:07.573 回答