如何转换PCollection <list <string>&gt;数据流/波束

时间:2017-06-11 00:14:58

标签: google-cloud-dataflow apache-beam

我有一个用例,我需要从DoFn输出多个T。因此DoFn函数返回PCollection<List<T>>。我想将它转换为PCollection<T>,以便稍后在管道中我可以像以下一样过滤:

PCollection<T> filteredT = filterationResult.apply(Filter.byPredicate(p -> p.equals(T) == T));

目前我能想到的最好的方法是,从List<T>函数返回ParDo,我返回KV<String,List<T>>,每个项目使用相同的键。然后在管道中我可以在下面结合结果:

filterationResult.apply("Group", GroupByKey.<String, List<T>>create())

或者我可以多次从DoFn(其中c.output(T)是传入的c个对象)中调用ProcessContext吗?

1 个答案:

答案 0 :(得分:6)

您可以多次从c.output(T)致电DoFn

还有一个图书馆转换Flatten.iterables(),但在这种情况下你不需要它。