python - 将 SDF 添加到管道,而无需传递虚拟输入

标签 python apache-beam

我有一个用 Python 编写的 SDF:

class Foo(DoFn):
    def process(element: Pipeline) -> Iterable[str]:
        ...

根据文档,SDF 用于实现 IO。对于我的 IO,我不需要将输入元素传递给 DoFn。 将 SDF 添加到管道的唯一选项似乎是 ParDo:

p | ParDo(Foo())

这样做会失败,因为它需要一个窗口,但该窗口不存在。即使手动添加窗口,在做出其他假设时它仍然会失败。

那么如何编写一个没有任何输入元素的 SDF 并将其直接添加到 Pipeline 中?

最佳答案

您可以输入一条记录来触发该事件,该记录会被 Splittable DoFn 忽略。

或者,您可以尝试使用 Impulse变换。

关于python - 将 SDF 添加到管道,而无需传递虚拟输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68307681/

相关文章:

python - Apache Beam Python 使用_outputs 对 ParDo 类进行单元测试

google-cloud-dataflow - 谷歌数据流 : attaching filename to the message

python - 生成从 00 到 24 的两位数

python - CNTK - 权重更新占缓慢训练时间的 90%

java - 覆盖分区表Bigquery的一些分区

google-cloud-platform - 如何计算Google Dataflow文件处理的输入文件中的行数?

python - KafkaRecord 不能转换为 [B

从 Matlab 调用的 Python 子进程失败

python - 如何将数组插入数据库?

python - 在 python 中以特定条件匹配字符串上的数字