0

将其他输入传递给 ParDo 转换的选项是什么。就我而言,我需要将大约 5000 个字符串对象传递给我的 ParDo。据我了解,这些是我的选择:

a) 将其作为侧输入传递:但我想,像巨大的侧输入这样的传递可能会降低我的管道的性能

b)将其作为参数传递给我的 ParDo 类的构造函数,并将其保留为类成员:有人可以告诉我,在内部,这与将其作为侧面输入传递有什么不同?

还有其他方法可以将额外的输入传递给 ParDo 吗?

4

2 回答 2

0

不清楚将其传递给构造函数与作为侧面输入传递之间的区别。但是,如果您将其作为侧面输入传递,请确保您进行了--workerCacheMb=<XXX>适当的设置。将侧面输入缓存在内存中可以更快地获取元素。

有关更多详细信息,请参阅此文档:

https://cloud.google.com/dataflow/model/par-do#side-inputs

于 2018-03-24T05:48:18.333 回答
0

使用侧面输入听起来像是解决问题的最佳方法。侧输入与直接在 DoFn 中包含数据不同,因为它们可以在运行时从外部数据源中读取。Dataflow 对管道大小的限制大约为 10MB,因此如果数据大于该数据,您将无法将其直接包含在 DoFn 中。

于 2018-03-23T17:12:07.727 回答