如何在猪中实现全联盟?

时间:2015-05-01 11:33:14

标签: hadoop apache-pig

我有3个数据集,每个数据集有415 GB的数据和不同的域。

我需要使用pig将所有这些联合起来,但我可以使用 union 子句,它在作业结束时启动reducers以删除不同的值。

a = union a1, a2
data = union a, a3

有没有办法跳过reducer部分,因为数据已经不同了。

1 个答案:

答案 0 :(得分:0)

来自UNION上的文档:

  

使用UNION运算符合并两个或多个关系的内容。   UNION运营商:

     
      
  • 不保留元组的顺序。输入和输出   关系被解释为无序的元组包。
  •   
  • 不确定   (正如数据库所做的那样)所有元组都遵循相同的模式   他们有相同数量的字段。但是,在典型情况下,   应该是这样的;因此,用户有责任   (1)确保输入关系中的元组具有相同的元组   schema或(2)能够处理输出中的变化元组   关系。
  •   
  • 不会消除重复的元组。
  •   

重点是我的。这表明我不需要使用reducer步骤来完成UNION,因为它不需要删除重复的行。你确定减速器工作是UNION的结果吗?这可能是另一个运营商的结果。

奖励:您可以将示例简化为:

B = UNION a1, a2, a3 ;