2014-07-14 12 views
1

J'utilise Pig 0.12.1. Pourquoi ai-je une erreur lorsque je FILTER après avoir fait un JOIN par LEFT OUTER?erreur « projection scalaire non valide » après avoir fait un REJOIGNEZ puis filtre dans Pig

Voici un exemple modifié:

A = LOAD '$file1' USING PigStorage('\t') AS (idA:int, manufacturer:chararray); 
B = LOAD '$file2' USING PigStorage('\t') AS (idB:int, price:float); 
C = JOIN A BY idA LEFT OUTER, B BY idB; 
D = FILTER C BY price > 2.0; 

Pourquoi puis-je obtenir cette "projection scalaire non valide" erreur sur D:

ERROR pig.PigServer: exception during parsing: Error during parsing. Pig script failed to parse: 
Invalid scalar projection: D 

Répondre

3

Essayez ceci, Vous pouvez accéder à la colonne de prix par,

D = FILTER C BY $3 > 2.0; 
or 
D = FILTER C BY B::price > 2.0; 
0

Essayez représentant toute NULL s dans la relation.

D = FILTER C BY price > 2.0 AND price is not null; 
+0

Hmm, casting était pas la question, mais merci de prendre un coup d'oeil. – user3662937

Questions connexes