如何在 PIG 中进行 DIFF

Posted

技术标签:

【中文标题】如何在 PIG 中进行 DIFF【英文标题】:How do I do a DIFF in PIG 【发布时间】:2015-03-19 01:27:20 【问题描述】:

我有 2 个数据集试图找出差异。我知道还有其他方法可以做到这一点。我感兴趣的是为什么这个 sn-p 的代码会失败。

A = LOAD 'raw.people1' using org.apache.hive.hcatalog.pig.HCatLoader();
B = LOAD 'raw.people2' using org.apache.hive.hcatalog.pig.HCatLoader();
C = COGROUP A BY (name, place, animal, thing) , B BY (name, place, animal, thing) ;
D = FOREACH C DIFF(A, B);

A、B 和 C 正常工作。但是 D 失败并出现错误: 解析失败:语法错误,“DIFF”处或附近出现意外符号

现在不应该是这样。 pig docs (http://pig.apache.org/docs/r0.9.1/func.html#diff) 声明 DIFF 将两个 pag 作为参数,A 和 B 是元组包。 我在这里想念什么? 谢谢

【问题讨论】:

【参考方案1】:

您在DIFF stmt 之前错过了GENERATE 关键字,这就是此错误的原因。可以这样改吗?

D = FOREACH C GENERATE DIFF(A, B);

【讨论】:

是的,看起来文档示例不正确。 文档没有使用 generate。你说的对。谢谢

以上是关于如何在 PIG 中进行 DIFF的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pig 中进行条件 JOIN?

在 python 脚本中,如何忽略 Apache Pig 的 Python 装饰器以进行独立单元测试

如何在 PIG 中导入/加载 .csv 文件?

接口测试过程中如何快速进行 diff 测试?

电脑中了.pig865qqz 勒索病毒后的文件该如何解决?

如何在另一个猪脚本中调用猪脚本