我有一个带有这样输入的猪脚本:
| 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是否知道如何仅加载和处理数据一次然后进行存储?
答案 0 :(得分:0)
您的输入只会加载一次,但每个GROUP BY
都需要单独的MapReduce作业。
在您的示例中,您按Col A
和Col B
分组,因此您的脚本将编译为两个作业。
答案 1 :(得分:0)
这实际上取决于您拥有的特定生猪代码(例如,您可以将其中一个联接作为倾斜等)
在任何情况下,猪都有EXPLAIN
关键字,它会向您显示逻辑计划,物理计划以及与此相关的地图/减少计划,以便创建任何关系。有关详细信息,请参阅Pig's manual
答案 2 :(得分:0)
是的,猪知道怎么做。你只需要一份MR工作。