2015-02-12 8 views

risposta

6

Un modo semplice per farlo sarebbe quello di combinare Flatten() con RemoveDuplicates() in questo modo. A seconda se si desidera l'unione disgiunta o l'unione di set-teorica, la chiamata RemoveDuplicates può essere omesso:

PCollection<String> pc1 = ...; 
PCollection<String> pc2 = ...; 
PCollection<String> union = PCollectionList.of(pc1).and(pc2) 
    .apply(Flatten.<String>create()) 
    .apply(RemoveDuplicates.<String>create()); 
+0

Mi chiedo se sarebbe una buona idea aggiungere un altro RemoveDuplicates prima del Flatten, nel caso ci fossero dei duplicati all'interno di ogni raccolta? Ad esempio, PCollectionList.of (pc1.apply (RemoveDuplicates)). e (pc2.apply (RemoveDuplicates)) - o l'ottimizzatore si prenderà cura di questo? – jkff

+0

Penso che "Flatten. .create" dovrebbe essere "Flatten. creare" – redtuna

+0

@redtuna corretto, grazie! –

-1

Se si dispone di più di due collezioni, una soluzione conveniente è quello di compilare un elenco di PCollection, fare un PCollectionList sulla base di questo e l'Appiattisci:

Spero che questo aiuti.

Problemi correlati