我有3个数据集,每个数据集有415 GB的数据和不同的域。
我需要使用pig将所有这些联合起来,但我可以使用 union 子句,它在作业结束时启动reducers以删除不同的值。
a = union a1, a2
data = union a, a3
有没有办法跳过reducer部分,因为数据已经不同了。
答案 0 :(得分:0)
来自UNION
上的文档:
使用UNION运算符合并两个或多个关系的内容。 UNION运营商:
- 不保留元组的顺序。输入和输出 关系被解释为无序的元组包。
- 不确定 (正如数据库所做的那样)所有元组都遵循相同的模式 他们有相同数量的字段。但是,在典型情况下, 应该是这样的;因此,用户有责任 (1)确保输入关系中的元组具有相同的元组 schema或(2)能够处理输出中的变化元组 关系。
- 不会消除重复的元组。
重点是我的。这表明我不需要使用reducer步骤来完成UNION
,因为它不需要删除重复的行。你确定减速器工作是UNION
的结果吗?这可能是另一个运营商的结果。
奖励:您可以将示例简化为:
B = UNION a1, a2, a3 ;