hadoop - 合并Pig中的两个数据集

hadoop - 合并Pig中的两个数据集,第1张

我有一个猪脚本,我在其中加载数据集,将其潜入两个单独的数据集,然后执行一些计算,最后添加另一个计算字段。现在我想加入这两个数据集。

A = LOAD '/user/hdfs/file1' AS (a:int, b:int);

A1 = FILTER A BY a > 100;
A2 = FILTER A BY a <= 100 AND b > 100;

-- Now I do some calculation on A1 and A2

基本上,在计算之后,这里是两者的模式:

{A1 : {a:int, b:int, type:chararray}}
{A2:  {a:int, b:int, type:chararray}}

现在,在我将其转发回HDFS之前,我想要将两个数据集合并回来。类似SQL中的UNION ALL。我怎么能这样做?

最佳答案:

2 个答案:

答案 0 :(得分:4)

UNION应该适合你 - 但你原来的架构与显示的输出不匹配(b作为chararray加载,后来变为int) - 我假设这是一个错字。

如果元组具有不同顺序的字段,则可以在执行UNION时使用ONSCHEMA关键字:

A_MERGED = UNION ONSCHEMA A1, A2;

编辑指向UNION

的PigLatin文档的链接

答案 1 :(得分:0)

您可以使用SPLIT

SPLIT A INTO A1 IF a > 100, A2 IF a <= 100 AND b > 100;
A = UNION A1, A2;
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复