Hadoop 如何使用Pig拉丁语脚本处理多个存储
我有一个输入如下的pig脚本: |A柱| B柱| C柱| D柱| E柱| 我有这样的关系,通过不同的列进行分组: X=A列|和C列|和D列| Y=列B |和列D |和列E| Z= 等Hadoop 如何使用Pig拉丁语脚本处理多个存储,hadoop,apache-pig,Hadoop,Apache Pig,我有一个输入如下的pig脚本: |A柱| B柱| C柱| D柱| E柱| 我有这样的关系,通过不同的列进行分组: X=A列|和C列|和D列| Y=列B |和列D |和列E| Z= 等 然后,我需要将X、Y、Z存储到不同的文件夹中,因此会多次调用存储。Pig是否知道如何只加载和处理一次数据,然后进行存储?您的输入将只加载一次,但每个分组依据将需要一个单独的MapReduce作业 在您的示例中,您是按列A和列B进行分组的,因此您的脚本将编译为两个作业。这实际上取决于您拥有的特定清管器代码(例如,您是
然后,我需要将X、Y、Z存储到不同的文件夹中,因此会多次调用存储。Pig是否知道如何只加载和处理一次数据,然后进行存储?您的输入将只加载一次,但每个
分组依据将需要一个单独的MapReduce作业
在您的示例中,您是按列A
和列B
进行分组的,因此您的脚本将编译为两个作业。这实际上取决于您拥有的特定清管器代码(例如,您是否可以将其中一个连接设置为倾斜等)
在任何情况下,pig都有EXPLAIN
关键字,它向您显示了逻辑计划、物理计划以及与此相关的映射/缩减计划,这些计划将用于创建任何关系。有关更多详细信息,请参见是的,猪知道怎么做。您将只拥有一个MR作业。Pig将把这些map reduce任务合并到一个Hadoop作业中。否-他的示例中有多个按不同列分组的关系-它将是多个作业。Pig将把这些map reduce任务合并到一个Hadoop作业中。这称为多重查询。请参阅第页的“非线性数据流”一节。注意“在许多情况下,Pig也可以将多个组运算符组合在一起”这句话。这正是其中之一。我不同意。基于原始问题运行脚本会导致使用Pig 0.9.2的2个MR作业。您是在运行脚本还是在Grunt shell中键入命令?为什么不试试看呢?