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

Google数据流和Apache beam:为什么选择ValueProvider

穆德海
2023-03-14

我对数据流非常陌生,并尝试用Python构建模板。

这就是让我感到困惑的文件。

我们是否有理由使用ValueProvider?

我发现许多官方模板只使用Pythonargparse

我应该在什么时候使用哪种解决方案?

  1. 创建PipelineOptions的子类并使用ValueProvider
@classmethod
def _add_argparse_args(cls, parser):
    parser.add_value_provider_argument(
        "--input", dest="input", required=True, help="Input for the pipeline",
    )
    ...

或2。使用argparse分析中的参数,如果uuu nam_uuuu==“uuuu main_uuuu”块?

共有1个答案

燕禄
2023-03-14

通过PipelineOptions使用ValueProvider而不是直接对参数使用argparse的原因是启用运行时参数。了解这一点的用处包括了解运行时参数和构造时参数之间的差异。正如数据流模板概述所述:

如果使用数据流模板,暂存和执行是独立的步骤。这种分离为您提供了额外的灵活性,可以决定谁可以运行作业以及从何处运行作业。

在创建和暂存模板时,将计算常规参数。因此,如果您直接使用argparse,或者您的PipelineOptions中有一些参数使用add_参数,则这些参数是在您第一次调用模板代码来构造和暂存作业图时指定的。因此,您通常只运行一次,以将作业分段,然后可以重复执行作业。

无论何时执行已分阶段执行的作业,都可以指定其他运行时参数。与构建管道时仅指定一次的构建时间参数不同,运行时参数可以在每次运行分阶段作业时指定,因此可以更频繁地更改。但是,转换需要显式地支持运行时参数作为ValueProviders,这是一个选项。

因此,总而言之,是否使用ValueProvider的决定取决于在构建图形或运行管道时是否需要参数。构造时参数主要用于影响图形构造的参数,或在一个作业的多次运行中保持不变的参数。每次运行作业时可能更改的参数(如输入文件)应为运行时参数(即ValueProviders),前提是您使用的转换支持该参数。

 类似资料:
  • 问题内容: 最近几天,我试图学习如何通过Java访问mySQL数据库。我能够加载驱动程序并获得与数据库的连接(至少我认为是这样,因为那里没有异常。) 代码是: 当我执行它时,它说: 驱动程序已加载… 连接成功… 数据库-ConnectionError:java.sql.SQLException:[MySQL] [ODBC 5.2(w)驱动程序] [mysqld-5.5.31]未选择数据库 我真的不

  • 目前正在使用React Native,并尝试使用React Native nfc ios和React national nfc,以便我可以在ios和Android之间进行跨设备通信。我发现他们无法沟通,但我认为这是由于一个更广泛的问题(因为其他现有的应用程序也无法工作)。 如果我在iPhone7上下载NFC阅读器应用程序,在Android上下载NFC写入器应用程序,它们就无法通信。这是为什么呢?

  • 如果你曾经使用过构建工具,你可能会对遇到的问题感到很沮丧,构建工具不是应该自动帮你完成项目的构建吗?你不得不向性能、扩展性等妥协。 比如你在构建一个项目的发布版本时,你要把一个文件拷贝到指定的位置,你在项目的元数据那里添加了版本的描述,如果版本号匹配一个特定的数字时,就把文件从A拷贝到B处。如果你依赖XML来构建,你要实现这个任务就像噩梦一样,你只能通过非标准的机制来添加一些脚本到构建中,结果就是

  • 来源:https://github.com/atom-china/manual 这个世界上有那么多种编辑器,为什么你要花时间学习和使用 Atom 呢? 虽然 Sublime 和 TextMate 之类的编辑器已经非常好用了,但它们仅提供了很有限的拓展性。而在另一个极端,Emacs 和 Vim 提供了灵活的拓展性,但它们并不是很友好,需要使用专用的编程语言来配置和拓展。 我们觉得我们可以做得更好。我

  • 为什么选择 NuxtJS

  • Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型. 作为负载均衡服务器:Ngin