如何在Beam 2.0中获取复合PTransform中的PipelineOptions?

2024-01-01

升级到 Beam 2.0 后Pipeline类没有getOptions()不再上课了。 我有一个复合的PTransform这依赖于获取其选项expand method:

public class MyCompositeTransform extends PTransform<PBegin, PDone> {
    @Override
    public PDone expand(PBegin input) {
        Pipeline pipeline = input.getPipeline();
        MyPipelineOptions options = pipeline.getOptions().as(MyPipelineOptions.class);
        ...
    }
}

在 Beam 2.0 中似乎没有办法访问PipelineOptions完全在expand method.

还有什么选择呢?


巴勃罗的回答 https://stackoverflow.com/a/45020492/4820657是正确的。我还想澄清一下,方式发生了重大变化PipelineOptions被管理。

您可以使用它们来解析参数并将其传递给您的main程序(或构建管道的任何代码),但这些在技术上独立于PipelineOptions配置管道的运行方式。

在梁中,Pipeline已完全构建完毕,然后您才可以选择PipelineRunner and PipelineOptions控制管道的运行方式。管道本身实际上没有选项。

如果你确实想要你的行为PTransform(不是它的扩展)要使用动态获取的某些选项,您应该使您的PTransform接受一个ValueProvider 就像这个例子WriteFiles https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/io/WriteFiles.java#L126您可以定义一个返回a的管道选项ValueProvider 就像这里ValueProviderTest https://github.com/apache/beam/blob/master/sdks/java/core/src/test/java/org/apache/beam/sdk/options/ValueProviderTest.java#L52

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Beam 2.0中获取复合PTransform中的PipelineOptions? 的相关文章

随机推荐

  • 如何在Java中使用keystore来存储私钥?

    我用过KeyPairGenerator生成 RSA 密钥对 如果我没记错的话 KeyStore 仅用于存储证书而不是密钥 如何在电脑上正确存储私钥 注意 此代码仅用于演示目的 将私钥存储在磁盘上时必须对其进行加密 不要按原样使用它 你可以这
  • 时间:2019-05-17 标签:c#MainWindowHandlealwayszero

    我读了一些关于 MainWindowHandle 的线程 但我找不到问题的解决方案 我正在启动一个 gui 应用程序 并希望通过进程对象获取 MainWindowHandle 但如果我不打算 则句柄值始终为零等待 thread sleep
  • 自动或使用快捷方式删除尾随空格

    有没有办法删除 Visual Studio Code 中的尾随空格 自动或使用快捷方式 我一直在命令选项板和编辑器设置中寻找此内容 但找不到我要找的内容 您可以启用空白修剪文件保存时间从设置 打开 Visual Studio Code 用户
  • zone.js 和 Jasmine 时钟之间的冲突

    我正在使用 Jasmine 测试套件 其中包括 普通 Jasmine 测试以及一些 Angular 2 组件的 Jasmine 测试 由于 Angular 2 的包含 zone js 被加载 这与 Jasmine 的时钟产生了冲突 例如 以
  • 为什么不在构造函数中调用可重写的方法?

    这是一个过于简化的示例 但我有一些现实生活中的代码在概念上执行相同的操作 尝试验证派生类的值 设置 访问器方法 并且分析器给我 不要在构造函数中调用可重写的方法 我试图弄清楚是否应该更改代码 或者忽略警告 我想不出有什么理由应该留意这个警告
  • 前向声明 cv::Mat

    您好 我正在尝试转发声明 cv Mat 类 但我无法让它工作 它给出了消息字段 frame 的类型不完整 OpenGlImpl h namespace cv class Mat class OpenGLImpl private cv Mat
  • 删除所有构造函数(或其他函数)的最佳样式?

    假设我想创建一个无法构造的类型 不要问为什么 struct Impossible 我可以这样做 Impossible delete disable automatically generated constructors don t dec
  • 如何获取Vim中所有环境变量的列表?

    当 Vim 启动时 它会从操作系统获取许多环境变量 例如PATH 并且它还设置了自己的环境变量 例如MYVIMRC 我如何list或者查看 Vim 理解的所有环境变量 以及 Vim 内部它们各自的值 在 Vimscript 中 没有直接的方
  • Firebase 身份验证/未经授权的域。域名未授权

    我正在尝试运行这个sample https github com firebase functions samples tree master quickstarts email usersfirebase 项目 但我不断在浏览器控制台中收
  • Jquery.inputmask 不工作

    尝试使用 Robin Herbots Inputmask 模块 但无法使其工作 查看所有其他类似的帖子 一个常见问题是确保 docment ready 函数调用 inputmask 但这对我来说看起来很好 Scripts
  • 将 CDN url 添加到 mvc 4 捆绑器输出

    使用内置的 MVC4 捆绑器 如何将我的 CDN url 添加到它生成的链接标签中 我已经设置了 Amazon Cloudfront 以便它在第一次请求时从我的网络服务器中提取资产 所以当我像这样定义一个包时 bundles Add new
  • 本地运行 jekyll 时出错(rvm gemset 问题)

    我通过 RVM 安装了 ruby 1 9 3 现在想要获取 rekyll gem 以便我可以在本地测试我的博客 当我gem install jekyll它安装正常 但是当我尝试运行时jekyll server我收到错误 Users matt
  • 指向具有多个对象的成员函数的指针向量 C++

    考虑以下代码 class A public void aFoo class B public void bFoo class C public void c1Foo void c2Foo 无论代码架构如何 是否可以创建指向成员函数的指针向量
  • Azure DevOps 中的代理作业和部署组作业有什么区别?

    Azure DevOps 中的代理作业和部署组作业有什么区别 创建其中之一的原因是什么 代理作业和部署组之间有什么区别 在 Azure DevOps 工作 代理工作 运行步骤在代理上其中在一个 部署组作业 Run 在机器上 in a 部署组
  • 使用 iCloud 共享 plist 文件

    我有一个相对简单的应用程序 它将数据保存到位于文档文件夹中的 plist 文件中 数据在启动时加载到 UITableView 中 然后 用户可以编辑 删除或添加记录 任何更改都会保存回 plist 文件 现在我想使用 iCloud 在设备之
  • 使用带有 mousedown、mousemove、mouseup 的 jquery 函数跟随 div [重复]

    这个问题在这里已经有答案了 我想制作一个 jquery 函数 当 div 处于 mousedown 状态时跟随 div 因此 当鼠标移动时 当鼠标按钮按下时 我页面上的 div 跟随光标 当鼠标按钮抬起时 div 停留在鼠标按下的最后位置
  • 在 Rails 中单独在特定控制器上创建之前跳过

    如何在 Rails 中单独跳过特定控制器上的 before create example class User lt ActiveRecord Base before create validate email def validate e
  • 为什么 ARM 内核在使用 ELF 和二进制文件时表现不同

    我正在 ARM 上进行裸机开发并在 QEMU 上模拟 Raspi 3 下面是我的最小汇编代码 section text boot global start start 1 wfe b 1b 下面是我的链接器脚本 SECTIONS 0x800
  • Postgresql LIKE 表示整数

    我的项目中遇到一些问题 我们使用 PostgreSQL 和 Hibernate 作为 ORM 我想在表中搜索任何列类型 整数 字符串 文本 Hibernate 哪里有问题 我知道我可以执行什么 例如 LIKE 运算符 对于 INTEGER
  • 如何在Beam 2.0中获取复合PTransform中的PipelineOptions?

    升级到 Beam 2 0 后Pipeline类没有getOptions 不再上课了 我有一个复合的PTransform这依赖于获取其选项expand method public class MyCompositeTransform exte