2014-10-15 14 views

risposta

6

In Apache Pig è possibile utilizzare le istruzioni nidificate in FOREACH see Pig Basics. Ecco un esempio dalla documentazione: A è una borsa in B.

X = FOREACH B { 
     S = FILTER A BY 'xyz'; 
     GENERATE COUNT (S.$0); 
} 

Invece di COUNT è possibile utilizzare IsEmpty e operatore?:

X = FOREACH B { 
     S = FILTER A BY 'xyz'; 
     GENERATE (IsEmpty(S.$0)) ? 'xyz NOT PRESENT' : 'xyz PRESENT') as present, B; 
} 

O solo di lasciare le borse che contengono i dati:

X = FOREACH B { 
     S = FILTER A BY 'xyz'; 
     GENERATE B, S; 
} 
F = FILTER X BY not IsEmpty(S); 
R = FOREACH F GENERATE B; 

Ciò eviterà costosi uniscono a se stesso , poiché i join aggiuntivi sono lavori di riduzione della mappa aggiuntivi.

Problemi correlati