如何使用 Pig Latin 中的 WHERE 子句编写左外连接?
How to Write a Left Outer Join with WHERE clause in Pig Latin?
我与定义的模式有两个关系。我希望仅从 relationA 中找到在关系中不存在的记录(请参阅 this post 的左侧中间可视化)。
我尝试了下面的两种变体,但都没有成功,因为它们都 return 下面的错误。如何在 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.You 将不得不使用 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);
我与定义的模式有两个关系。我希望仅从 relationA 中找到在关系中不存在的记录(请参阅 this post 的左侧中间可视化)。
我尝试了下面的两种变体,但都没有成功,因为它们都 return 下面的错误。如何在 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.You 将不得不使用 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);