PIG 是否支持 IN 子句?
filtered = FILTER bba BY reason not in ('a','b','c','d');
还是我应该把它分成多个OR?
谢谢!
PIG 是否支持 IN 子句?
filtered = FILTER bba BY reason not in ('a','b','c','d');
还是我应该把它分成多个OR?
谢谢!
您可以改用来自 Apache DataFu 的以下 udf。这将帮助您避免编写大量 OR。
https://github.com/linkedin/datafu/blob/master/src/java/datafu/pig/util/InUDF.java
Pig 0.12 添加在运营商http://www.edureka.co/blog/operators-in-apache-pig-diagnostic-operators/见页面底部..发行说明。没有在官方文档中找到它(除了在发行说明中没有提到)
你可以通过使用 AND/OR/NOT
不,Pig 不支持 IN 子句。我也有类似的情况。尽管您可以使用 AND 运算符和过滤关键字作为解决方法。喜欢
A= LOAD 'source.txt' AS (user:chararray, age:chararray);
B= FILTER A BY ($1 匹配 'tapan') AND ($1 匹配 'superman');
但是,如果需要的过滤数量很大。然后,您可能只需要创建一个包含所有这些关键字的关系,然后进行连接以过滤匹配的匹配项。希望这可以帮助。
我们可以使用 IN 子句如下:
A = FILTER alias_name BY col_name IN (val1, val2,...,valn);
DUMP A;