gpt4 book ai didi

java - 如何从谷歌数据流管道中的多个输入PCollection生成一个输出PCollection?

转载 作者:行者123 更新时间:2023-11-30 02:53:52 24 4
gpt4 key购买 nike

我正在尝试生成一个 PCollection<C> (使用 C 类型的元素),使用变压器从 2 个输入:一个 PCollection<A> (包含类型 A 的元素),第二个是 PCollection<C> .

基本上,转换器会考虑存储在 PCollection<A> 中的元素。并用 PCollection<C> 上的元素进行一些计算以这种方式,最终它将生成一个包含新元素的新 PCollection 作为输出。

那么,有没有办法使用 PCollectionTuple 来实现这个场景? ,或ParDo超过PCollectionTuple仅产生一个输出 PCollection ,或使用 Google Dataflow SDK 的任何其他建议吗?

最佳答案

在 Dataflow 中加入 PCollection 的方法有多种。对于您的情况, PCollection<C> 中的每个元素需要访问 PCollection<A> 中的多个元素,您可以使用侧面输入。请参阅View转换以获取更多信息。

例如,假设 pCollectionA 很小:

PCollectionView<List<A>> view = View.asList(pCollectionA);
PCollection<C> output = pCollectionC.apply(ParDo.withSideInputs(view).of(
new DoFn<C,C>() {
public void processElement(ProcessContext c) {
c.output(...combine c.element() and c.sideInput(view)...);
}
});

如果您只需要访问 pCollectionA 中每个元素的部分内容,则可以使用 View.asMultimap 代替,这将允许在 pCollectionA 中进行点查找

关于java - 如何从谷歌数据流管道中的多个输入PCollection生成一个输出PCollection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37825173/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com