div*_*gon 5 hadoop apache-pig piglet
我有一个 pig 脚本,我在其中加载数据集,将其分成两个单独的数据集,然后执行一些计算,最后向其中添加另一个计算字段。现在我想加入这两个数据集。
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
Run Code Online (Sandbox Code Playgroud)
所以基本上,在计算之后,这里是两者的模式:
{A1 : {a:int, b:int, type:chararray}}
{A2: {a:int, b:int, type:chararray}}
Run Code Online (Sandbox Code Playgroud)
现在,在我将其转储回 HDFS 之前,我想将两个数据集合并回来。类似于UNION ALL
SQL 中的东西。我怎样才能做到这一点?
UNION 应该对你有用——但你的原始模式与显示的输出不匹配(b 被加载为一个字符数组,后来变成一个 int)——我假设这是一个错字。
如果元组具有不同顺序的字段,则可以在执行 UNION 时使用 ONSCHEMA 关键字:
A_MERGED = UNION ONSCHEMA A1, A2;
Run Code Online (Sandbox Code Playgroud)
编辑链接到UNION的 PigLatin 文档
归档时间: |
|
查看次数: |
11249 次 |
最近记录: |