我正在尝试在 Dataflow 中执行联合操作。是否有在 Dataflow 中合并两个 PCollection 的示例代码?
问问题
1803 次
2 回答
10
一个简单的方法是像这样将 Flatten() 与 RemoveDuplicates() 结合起来。根据您是想要不相交联合还是集合论联合,可以省略 RemoveDuplicates 调用:
PCollection<String> pc1 = ...;
PCollection<String> pc2 = ...;
PCollection<String> union = PCollectionList.of(pc1).and(pc2)
.apply(Flatten.<String>pCollections())
.apply(RemoveDuplicates.<String>create());
于 2015-02-12T20:11:56.730 回答
0
如果您有两个以上的集合,一个方便的解决方案是填充 PCollection 列表,基于该列表和 Flatten 创建一个 PCollectionList:
List<PCollection<TableRow>> tabs = new ArrayList<>();
/* ... fill tabs */
PCollectionList<TableRow> tabList = PCollectionList.of(tabs);
PCollection<TableRow> bigOne = tabList.apply(Flatten.<TableRow>create());
希望这可以帮助。
于 2015-04-02T12:45:56.127 回答