【发布时间】:2017-01-31 11:39:52
【问题描述】:
我正在尝试
select * from A where A.ID NOT IN (select id from B) (in sql)
filtersource= FILTER source BY ID NOT(destination.ID)
如何使用 NOT IN 子句或其他一些技术来使用 pig 去除一个表中存在的额外记录
【问题讨论】:
标签: hadoop mapreduce apache-pig
我正在尝试
select * from A where A.ID NOT IN (select id from B) (in sql)
filtersource= FILTER source BY ID NOT(destination.ID)
如何使用 NOT IN 子句或其他一些技术来使用 pig 去除一个表中存在的额外记录
【问题讨论】:
标签: hadoop mapreduce apache-pig
是的,你可以在 PIG 中这样做:
filtersource= FILTER source BY NOT ID IN (your condition or joined field);
示例:
HIVE> select * from table where id NOT IN ('1','2','3');
grunt> A = LOAD 'db.table' USING org.apache.hive.hcatalog.pig.HCatLoader() AS (id:int, value:chararray);
grunt> B = FILTER A BY NOT id IN (1,2,3);
【讨论】:
除了@Rijulsahu 的回答,您还可以使用MATCHES - 将Java format 用于正则表达式的正则表达式匹配。
BY NOT(ID MATCHES [123])
【讨论】: