如何在Dataflow中执行联合?

时间:2015-02-12 20:11:20

标签: google-cloud-dataflow

我正在尝试在Dataflow中执行联合操作。是否有用于在Dataflow中结合两个PCollections的示例代码?

2 个答案:

答案 0 :(得分:8)

执行此操作的一种简单方法是将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 :(得分:0)

如果你有两个以上的集合,一个方便的解决方案是填充一个PCollection列表,根据它创建一个PCollectionList和Flatten:

List<PCollection<TableRow>> tabs = new ArrayList<>();
/* ... fill tabs */
PCollectionList<TableRow> tabList = PCollectionList.of(tabs);
PCollection<TableRow> bigOne = tabList.apply(Flatten.<TableRow>create());

希望这有帮助。