5

PIGはIN句をサポートしていますか?

filtered = FILTER bba BY reason not in ('a','b','c','d');

または、複数のORに分割する必要がありますか?

ありがとう!

4

6 に答える 6

6

代わりに、ApacheDataFuの以下のudfを使用できます。これは、多くのORを記述しないようにするのに役立ちます。

https://github.com/linkedin/datafu/blob/master/src/java/datafu/pig/util/InUDF.java

于 2014-03-21T18:20:33.763 に答える
3

Pig0.12が演算子http://www.edureka.co/blog/operators-in-apache-pig-diagnostic-operators/に追加されました。ページの下部を参照してください。リリースノート。公式ドキュメントに記載されていません(リリースノートでの言及は別として)

于 2014-09-09T07:00:09.503 に答える
2

ドキュメントのどのサンプルにも見つかりませんでした。

AND / OR/NOTを使用して取得できます

于 2011-08-24T16:58:42.090 に答える
1

いいえ、PigはIN句をサポートしていません。私も同じような状況でした。回避策としてAND演算子とfilterキーワードを使用できますが。お気に入り

A = LOAD'source.txt' AS(user:chararray、age:chararray);

B = FILTER A BY($1は'tapan'に一致)AND($ 1は'superman'に一致);

ただし、必要なフィルタリングの数が膨大な場合。次に、おそらく、これらすべてのキーワードを含むリレーションを作成し、結合を実行して、オカレンスが一致する場所でフィルタリングすることができます。お役に立てれば。

于 2012-05-15T08:43:24.700 に答える
1

IN句は次のように使用できます。

A = FILTER alias_name BY col_name IN (val1, val2,...,valn);

DUMP A;
于 2017-02-12T10:15:51.903 に答える
1

あなたはこれを好きにすることができます:

X = FILTER bba BY NOT reason IN ('a','b','c','d');

より詳しい情報

于 2017-12-07T08:52:51.563 に答える