Я пытаюсь выполнить операцию объединения в Dataflow. Есть ли пример кода для объединения двух PCollections в Dataflow?Как выполнить объединение в потоке данных?
5
A
ответ
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());
-1
Если у вас есть более чем две коллекции, удобное решение, чтобы заполнить список PCollection, сделать PCollectionList на основе этого и Flatten:
Надеюсь, это поможет.
Интересно, было ли неплохо добавить еще один RemoveDuplicates перед Flatten, если в каждой коллекции могут быть дубликаты? то есть PCollectionList.of (pc1.apply (RemoveDuplicates)) и (pc2.apply (RemoveDuplicates)) - или оптимизатор позаботится об этом? – jkff
Я думаю, что «Flatten. .create» должен быть «Flatten. создать« –
redtuna
@redtuna исправлена, спасибо! –