Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 如何使用Pig拉丁语脚本处理多个存储_Hadoop_Apache Pig - Fatal编程技术网

Hadoop 如何使用Pig拉丁语脚本处理多个存储

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进行分组的,因此您的脚本将编译为两个作业。这实际上取决于您拥有的特定清管器代码(例如,您是

我有一个输入如下的pig脚本:

|A柱| B柱| C柱| D柱| E柱|

我有这样的关系,通过不同的列进行分组:

X=A列|和C列|和D列|

Y=列B |和列D |和列E|

Z=


然后,我需要将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中键入命令?为什么不试试看呢?