2015-02-12 8 views

Odpowiedz

6

Prostym sposobem na zrobienie tego byłoby połączenie Flatten() z RemoveDuplicates() w taki sposób. W zależności od tego, czy chcesz unię odłączony lub set-teoretyczną unię, wywołanie RemoveDuplicates można pominąć:

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

Zastanawiam się, czy dobrym pomysłem byłoby dodanie kolejnego RemoveDuplicates przed spłaszczeniem, na wypadek gdyby w każdej kolekcji pojawiły się również duplikaty? tj. PCollectionList.of (pc1.apply (RemoveDuplicates)) oraz (pc2.apply (RemoveDuplicates)) - czy optymalizator mógłby się tym zająć? – jkff

+0

Myślę, że "Spłaszcz" . Utwórz "powinien być" Spłaszcz. utworzyć " – redtuna

+0

@redtuna naprawione, dziękuję! –

-1

Jeśli masz więcej niż dwie kolekcje, wygodnym rozwiązaniem jest, aby wypełnić listę PCollection, zrób PCollectionList na podstawie tego i Spłaszczenia:

Mam nadzieję, że to pomoże.

Powiązane problemy