【问题标题】:How is pipe syntax implemented in apache beam?apache Beam 中的管道语法是如何实现的?
【发布时间】:2019-04-23 04:00:53
【问题描述】:

我现在正在学习apache beam,出于好奇,我想问以下问题。

事先,我已经阅读了以下文档和主题。

https://beam.apache.org/documentation/programming-guide/#applying-transforms

Explain Apache Beam python syntax

我知道 pipe(|) 是 java 的 .apply 的 python 版本。但是,我很想知道 python 如何将 __or__ 运算符解释为处理从左到右经过的每个 pcollection 元素的处理器。

如果有人可以教育我并指出代码的参考,我将不胜感激。

谢谢, 于

【问题讨论】:

标签: google-cloud-platform apache-beam


【解决方案1】:

我想将@Kolban 的回复标记为答案。

我在“python 运算符重载”上进行了 Google 搜索,发现了一个 一堆看起来很可能的好的参考资料。搜索 Github 存储库,看起来这可能是实际代码: https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/ptransform.py#L470

【讨论】:

    【解决方案2】:

    通过operator overloading

    def __or__(self, right):
      """Used to compose PTransforms, e.g., ptransform1 | ptransform2."""
      if isinstance(right, PTransform):
        return _ChainedPTransform(self, right)
      return NotImplemented
    

    管道 (|) 用于组成 PTransforms,例如,ptransform1 | ptransform2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-05
      • 2019-10-05
      • 2021-11-25
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多