在 Google 云数据流中使用实验=no_use_multiple_sdk_containers

Use Of experiments=no_use_multiple_sdk_containers in Google cloud dataflow

问题总结: 你好, 我正在使用 avro 版本 1.11.0 来解析 avro 文件并对其进行解码。我们有自定义要求,所以我无法使用 ReadFromAvro。当尝试使用数据流进行此操作时,会出现依赖性问题,因为版本 1.82 的 avro-python3 已经可用。问题是 class TimestampMillisSchema,它不存在于 avro-python3 中。它未能说明 avro.schema 中未找到属性 TimestampMillisSchema。然后我尝试使用 avro==1.11.0 传递一个需求文件,但现在数据流无法开始给出错误“Error syncing pod”,这似乎是因为依赖冲突。

为了解决这个问题,我们设置了一个实验标志 (--experiments=no_use_multiple_sdk_containers),运行 没问题。

我想知道我的问题的更好解决方案,上面的标志是否会影响管道性能。

请尝试使用数据流 运行 命令:

--prebuild_sdk_container_engine=cloud_build --experiments=use_runner_v2

这将使用云构建来构建具有额外依赖项的容器,然后将在数据流中使用它 运行。