Google 云数据流依赖项

Google Cloud Dataflow Dependencies

我想使用数据流并行处理存储在 google 存储器中的一堆视频剪辑。我的处理算法具有非 python 依赖性,预计会随着开发迭代而改变。


我的偏好是使用 docker 化的容器和处理剪辑的逻辑,但似乎不支持自定义容器(2017 年):

虽然现在可能会支持它们 - 因为它正在开发中:

Posthoc connect FFMPEG to opencv-python binary for Google Cloud Dataflow job

根据这个问题,可以提取自定义 docker 图像,但我找不到任何关于如何使用数据流执行此操作的文档。

https://issues.apache.org/jira/browse/BEAM-6706?focusedCommentId=16773376&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16773376

另一种选择可能是使用 setup.py 安装任何依赖项,如这个过时示例中所述:

https://cloud.google.com/blog/products/gcp/how-to-do-distributed-processing-of-landsat-data-in-python

然而,当 运行 这个例子时,我得到一个错误,没有名为 osgeo.gdal.

的模块

对于纯 python 依赖项,我也尝试传递 --requirements_file 参数,但是我仍然收到错误消息:Pip install failed for package: -r

我可以找到将依赖项添加到 apache_beam 的文档,但不能找到添加到数据流的文档,而且根据我对 --requirements_file 和 [ 的测试,apache_beam 指令似乎不起作用=14=]

这已在评论中得到回答,为清楚起见,在此处重写:

在 Apache Beam 中,您可以修改 setup.py 文件,同时 运行 每个容器在 start-up 上修改一次。此文件允许您在 SDK Harness 开始接收来自 Runner Harness 的命令之前执行任意命令。

可以在 Apache Beam 存储库中找到完整的 example

自 2020 年起,您可以使用 Dataflow Flex Templates,它允许您指定一个自定义 Docker 容器来执行您的管道。