如何处理Pig-Latin Script中的多个STORES

时间:2013-06-21 20:52:35

标签: hadoop apache-pig

我有一个带有这样输入的猪脚本:

| Col A | Col B | Col C | Col D | Col E |

我有各种各样的关系,如这些分组:

X = Col A | Sum Col C | Sum Col D |

Y = Col B | Sum Col D | Sum Col E |

Z = ...

ETC

然后我需要将X,Y,Z存储到不同的文件夹中,因此会多次调用STORE。 Pig是否知道如何仅加载和处理数据一次然后进行存储?

3 个答案:

答案 0 :(得分:0)

您的输入只会加载一次,但每个GROUP BY都需要单独的MapReduce作业。

在您的示例中,您按Col ACol B分组,因此您的脚本将编译为两个作业。

答案 1 :(得分:0)

这实际上取决于您拥有的特定生猪代码(例如,您可以将其中一个联接作为倾斜等) 在任何情况下,猪都有EXPLAIN关键字,它会向您显示逻辑计划,物理计划以及与此相关的地图/减少计划,以便创建任何关系。有关详细信息,请参阅Pig's manual

答案 2 :(得分:0)

是的,猪知道怎么做。你只需要一份MR工作。