2015-02-12 5 views

ответ

6

Простым способом сделать это было бы объединение Flatten() с RemoveDuplicates() как это. В зависимости от того, хотите ли вы несвязное объединение или теоретико-множественного союза, вызов RemoveDuplicates может быть опущен:

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

Интересно, было ли неплохо добавить еще один RemoveDuplicates перед Flatten, если в каждой коллекции могут быть дубликаты? то есть PCollectionList.of (pc1.apply (RemoveDuplicates)) и (pc2.apply (RemoveDuplicates)) - или оптимизатор позаботится об этом? – jkff

+0

Я думаю, что «Flatten. .create» должен быть «Flatten. создать« – redtuna

+0

@redtuna исправлена, спасибо! –

-1

Если у вас есть более чем две коллекции, удобное решение, чтобы заполнить список PCollection, сделать PCollectionList на основе этого и Flatten:

Надеюсь, это поможет.