我有以下输入:
input = LOAD '$in_data' USING PigStorage('\t', '-schmea') AS (
uid:chararray,
pid:int,
token:chararray
);
stpwrd = LOAD '$stpwrd' USING PigStorage('\t', '-schema') AS (
token:chararray
);
我的目标可以总结为以下伪代码:
output = FILTER input BY NOT IN(input.token, stpwrd);
,理想情况下在 input
谁的表 input.token
字段不在 stpwrd
.
我查过了 SetDifference()
自定义项输入 datafu
(link),但我不确定这是否能起作用,因为它似乎要求两个表都是单例表,而我的 input
表有多列。
1条答案
按热度按时间ddhy6vgd1#
我们可以通过使用right join和过滤stpwrd中的记录来实现这个目标,下面的一个例子说明了这个用法。
输入:输入数据
输入:stpwrd
Pig脚本:
输出:req\ U数据
请求数据别名中的项目必填字段。