PIG是否支持IN子句?
filtered = FILTER bba BY reason not in ('a','b','c','d');
或者我应该把它分成多个OR?
谢谢!
答案 0 :(得分:6)
您可以使用Apache DataFu下面的udf代替。这将帮助您避免编写大量的OR。
https://github.com/linkedin/datafu/blob/master/src/java/datafu/pig/util/InUDF.java
答案 1 :(得分:3)
Pig 0.12已添加到运算符http://www.edureka.co/blog/operators-in-apache-pig-diagnostic-operators/中,请参阅页面底部..发布说明。 Haven没有将它放在官方文档中(除了发行说明中没有提及)
答案 2 :(得分:2)
I didn't find it in any of the samples in the documentation.
您可以使用AND / OR / NOT
答案 3 :(得分:1)
不,Pig不支持IN Clause。 我有类似的情况。虽然您可以使用AND运算符和过滤关键字作为解决方法。 像
A = LOAD'source.txt'AS(用户:chararray,年龄:chararray);
B = FILTER A BY($ 1匹配'tapan')AND($ 1匹配'superman');
但是,如果所需的过滤数量很大。然后,您可能只需创建一个包含所有这些关键字的关系,并进行连接以过滤匹配项的位置。 希望这会有所帮助。
答案 4 :(得分:1)
我们可以使用IN子句如下:
A = FILTER alias_name BY col_name IN (val1, val2,...,valn);
DUMP A;
答案 5 :(得分:1)
你可以这样做:
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);