如何在Apache Beam中实现管道语法?

时间:2019-04-23 04:00:54

标签: google-cloud-platform apache-beam

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

预先,我已阅读以下文档和主题。

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

Explain Apache Beam python syntax

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

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

谢谢,

2 个答案:

答案 0 :(得分:0)

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

  

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

答案 1 :(得分:0)

通过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