首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过更新标志更新数据流作业

无法通过更新标志更新数据流作业
EN

Stack Overflow用户
提问于 2016-07-30 03:55:12
回答 1查看 1.1K关注 0票数 5

我试图通过在DataFlow中将setUpdate标志设置为true来更新DataflowPipelineOptions作业。我有一个函数,它用名称检查现有作业,如果作业不在那里,我将setUpdate标志设置为false,否则为true。这意味着第一次部署作业时,setUpdate标志设置为false,所有后续部署都会将标志设置为true。

代码语言:javascript
复制
options.setUpdate(jobExists(options));

管道代码如下:

代码语言:javascript
复制
    pipeline
    .apply("Read", pubsubDownload)
    .apply("Window", Window.into(FixedWindows.of(WINDOW_DURATION)))
    .apply("Extract", ParDo.of(new Extract()))
    .apply("Count", ApproximateUnique.perKey(0.06))
    .apply("View As Map", View.asMap()); //<-- ****Fails here

注意:我只是想测试更新后的标志,这样就不会在部署中更改代码的任何部分。我只想测试这个标志,它设法用新的.取代了旧的作业。

然而,这是行不通的。我可以第一次成功地部署这个任务。当我再次尝试重新部署作业时,会出现以下错误:

工作流失败。原因:(9a8ccc4f2e36c2d6):新作业与不兼容。最初的作业没有被中止。,(9a8ccc4f2e36c371):以与Map/StreamingViewAsMap/Combine.Globally/Combine.PerKey/GroupByKey不兼容的方式更改舞台视图为

View.asMap函数不可更新吗?根据文档,SideInput是可更新的。由于错误状态,如果视图不可更新且SideInput需要视图,则文档中包含错误信息。

请注意,这不需要View.asMap管道步骤。

EN

回答 1

Stack Overflow用户

发布于 2016-08-01 11:10:00

你需要检查更新现有管道

防止兼容性中断:

  • 在不提供映射的情况下更改管道图
  • 更改步骤的侧输入
  • 更改编码器一步。
  • 您已经从管道中删除了一个“有状态”操作
  • 你试图在不同的地理区域执行你的替代工作。

例如,您可以在StackDriver日志中搜索“不具有稳定的唯一名称”。也许有些帕多是匿名的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38670194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档