当前位置: 首页 > 知识库问答 >
问题:

管道语法是如何在apache梁中实现的?

万俟皓
2023-03-14

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

在此之前,我已经阅读了以下文档和线程。

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

解释ApacheBeamPython语法

我知道管道(|)是java的Python版本。然而,我很想知道python是如何将__or__运算符解释为处理器,处理从左到右的每个pCollection元素。

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

谢谢,余

共有2个答案

施阳夏
2023-03-14

它通过运算符重载来实现:

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

管道(|)用于构成P传输,例如,P传输M1 | P传输M2

巫欣荣
2023-03-14

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

我在谷歌上搜索了“python操作员重载”,发现了一堆看起来很有可能的好参考文献。搜索Github存储库,看起来这可能是实际的代码:https://github.com/apache/beam/blob/master/sdks/python/apache_beam/transforms/ptransform.py#L470

 类似资料:
  • 我正在尝试使用Perl6语法实现Markdown解析器,但被块引号卡住了。块引号段落不能用嵌套大括号表示,因为它是一个特定格式行的列表。但从语义上讲,它是一个嵌套的标记。 基本上可以归结为以下定义: mdBQLine令牌的实际实现与此无关。唯一需要注意的是,mdBQLineBody键包含实际引用的带有

  • 问题内容: 我有一个任务,要使用JavaCC为讲师提供的语言制作具有语义分析的自上而下的解析器。我已经写了生产规则,没有错误。我完全陷入了如何在代码中使用JJTree的问题,而我花大量时间在互联网上搜索教程的时间也没有吸引我。只是想知道有人可以花点时间来解释如何在代码中实现JJTree吗?或者,如果某个地方有隐藏的分步教程,那将对您有很大的帮助! 如果有帮助,以下是我的一些生产规则。提前致谢! 问

  • 我试图运行一个基本的wordcount光束管道从python SDK与flink纱线会话在AWS EMR。我使用了flink runner和portable runner,得到了下面列出的两个不同的错误。来自这两种运行者的作业都显示在flink UI中,并在我的笔记本电脑上通过本地flink会话成功运行。 对于FlinkRunner,作业以BeamApp-hadoop-0617202523-148

  • 问题内容: 我正在尝试在管道脚本中同步到Perforce,但是从文档中我看不到设置“工作区行为”的方法,即使插件本身似乎具有该功能。 我想要的“工作区”等同于设置“手册(自定义视图)”我可以在UI所描述的配置在这里。我需要将什么参数传递给任务以实现该目标? 问题答案: 您将需要使用完整的DSL,DSL仅是基本的。最简单的方法是使用摘要生成器(“ 管道语法” 链接),然后从SCM列表中选择。 然后,

  • 我读到关于Broli压缩,并认为我不妨考虑支持它。 我最近读到的一篇(ish)文章提到了一个.br文件——那么,在我的index.html文件旁边放一个index.br文件会很容易吗?或者支持它意味着重新编译Apache?