apache-pig - 如何用 Pig Latin 编写带有 WHERE 子句的左外连接?

标签 apache-pig

我与定义的模式有两个关系。我希望找到仅从关系 A 中获取关系中不存在的记录(请参阅 this post 上的左侧中间可视化)。

我尝试了下面的两种变体,但没有成功,因为它们都返回下面的错误。如何在 Pig 中执行此类操作?

"ERROR 1200 mismatched input 'WHERE' expecting SEMI-COLON."

join_result = JOIN relationA by (project_id, sequence_id) LEFT OUTER, relationB by (project_id, sequence_id) WHERE relationB (project_id, sequence_id)is null;

join_result = JOIN relationA by (project_id, sequence_id) LEFT OUTER, relationB by (project_id, sequence_id) WHERE (relationB.project_id is null) AND (relationB.sequence_id is null);

最佳答案

JOIN 中没有“WHERE”子句在 PIG 中。您必须使用 FILTER 来根据条件删除记录。

join_result = JOIN relationA by (project_id, sequence_id) LEFT OUTER, relationB by (project_id, sequence_id);
final_result = FILTER join_result BY (relationB.project_id is null AND relationB.sequence_id is null);

关于apache-pig - 如何用 Pig Latin 编写带有 WHERE 子句的左外连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37274726/

相关文章:

apache-pig - Apache pig : Merging list of attributes into a single tuple

hadoop - 加载数据时 pig 出错

azure - 在Azure中通过.NET应用程序流式传输

hadoop - 用于查找每个部门薪水的最大值、最小值、平均值、总和的 Pig 脚本

json - Piggybank中缺少JsonLoader

hadoop - 使用 apache Pig 将文件分成 4 个相等的部分

hadoop - 在hadoop群集中,是否应在所有节点上安装 hive ?安装 pig

Hadoop Pig 无法存储到现有文件夹

python - 将Pig嵌入Python

hadoop - 输入路径不存在:file:/D:/pigsample_1749383998_1377684507424