2017-01-31 2 views
1

Ich bin wieDoes PIG haben NICHT IN-Klausel

select * from A where A.ID NOT IN (select id from B) (in sql) 

filtersource= FILTER source BY ID NOT(destination.ID) 

versuchen Wie NICHT IN-Klausel oder eine andere Technik zu tun, um die zusätzlichen Datensätzen in einer Tabelle Schwein

Antwort

0

ja mit keen aus können Sie dies geschieht in PIG wie:

filtersource= FILTER source BY NOT ID IN (your condition or joined field); 

Beispiel:

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); 
+0

Hallo Rijul und Ronak Dank für die Antwort, habe ich mit der Bemerkung filtersource = FILTER sourcenew versucht DURCH NICHT-ID (destnew.ID) ;, aber ich habe einen Fehler ERROR 1070 bekam: Es konnte keine ID lösen mit Importen: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.], jede Idee, wie man damit umgeht – Vickyster

0

Zusätzlich zu @ Rijulsahus Antwort können Sie auch MATCHES - Regulärer Ausdruck verwenden, der die Java format für reguläre Ausdrücke verwendet.

BY NOT(ID MATCHES [123])