我现在正在研究apache beam
,出于好奇,我想问以下问题。
预先,我已阅读以下文档和主题。
https://beam.apache.org/documentation/programming-guide/#applying-transforms
Explain Apache Beam python syntax
我了解到pipe(|
)是Java .apply
的python版本。但是,我很想知道python如何将__or__
运算符解释为处理从左到右经过的每个pcollection元素的处理器。
如果有人可以教育我并向我指出代码参考,我将感激不尽。
谢谢,
答案 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
。