我可以选择将其他输入传递给ParDo转换。在我的情况下,我需要将大约5000个字符串对象传递给我的ParDo。根据我的理解,这些是我的选择:
a)将其作为侧面输入传递:但我想,传递如巨大的侧面输入可能会降低我的管道性能
b)将它作为参数传递给我的ParDo类的构造函数,并将其作为类成员保存:有人可以告诉我,在内部,这与传递它作为侧面输入有何不同?
还有其他方法可以将额外的输入传递给ParDo吗?
答案 0 :(得分:0)
使用侧面输入听起来像是问题的最佳解决方案。侧输入与直接包含DoFn中的数据不同,因为它们可以在运行时从外部数据源读取。数据流对管道大小的限制大约为10MB,因此如果数据大于此值,则无法将其直接包含在DoFn中。
答案 1 :(得分:0)
不清楚将它传递给构造函数与传递作为侧输入之间的区别。但是如果您将其作为侧面输入传递,请确保正确设置--workerCacheMb=<XXX>
。在存储器中具有侧输入缓存输入使得元素获取更快。
有关详细信息,请参阅此文档: