2017-07-14 1 views
0

Ich habe eine Liste, die wie folgt aussieht: lista.csv:Filter eine Liste von einem Integer mit piglatin

client-id priority client-start assignment 
12345  1   1250125125  13 
1246   3   1250122156  27 
12616  1   1250122351  3 
... 

und ich habe eine andere Liste, die aussehen wie ein Vektor listb.csv:

125125 
124214 
1246 
125 
... 

Was ich tun möchte ist, Liste für alle Clients zu filtern, deren ID ich auch in listb finden kann.

Ich habe versucht, so etwas wie dieses, aber es funktioniert nicht:

raw = LOAD 'lista.csv' USING PigStorage('\t') AS (client-id: int, priority: 
int, client-start: int, assignment: int); 
s4q = LOAD 'listb.csv' USING PigStorage('\t') AS (survs4id: int); 
s4id = FOREACH s4q { 
dd = FILTER raw by (client-id == s4q); 
GENERATE dd; 
} 
DUMP dd; 

Irgendwelche Ideen, wie man das Problem lösen?

Antwort

0

VERBINDEN Sie diese beiden Relationen, um nur die übereinstimmenden Datensätze zu erhalten. Dies dient als Filter.

raw = LOAD 'lista.csv' USING PigStorage('\t') AS (client-id: int, priority: int, client-start: int, assignment: int); 
s4q = LOAD 'listb.csv' USING PigStorage('\t') AS (survs4id: int); 
s4id = JOIN raw BY client-id,s4q BY survs4id; 
dd = FOREACH s4id GENERATE s4id.$0,s4id.$1,s4id.$2,s4id.$3; 
DUMP dd; 
+0

Thx! Es funktioniert.. – nomilk

Verwandte Themen