我想使用数据流并行处理我存储在谷歌存储中的一堆视频剪辑。我的处理算法具有非 Python 依赖项,预计会随着开发迭代而改变。
我的偏好是使用具有处理剪辑逻辑的 dockerized 容器,但似乎不支持自定义容器(2017 年):
use docker for google cloud data flow dependencies
尽管它们现在可能受到支持 - 因为它正在开发中:
Posthoc connect FFMPEG to opencv-python binary for Google Cloud Dataflow job
根据此问题,可以提取自定义 Docker 镜像,但我找不到任何有关如何使用数据流执行此操作的文档。
另一种选择可能是使用 setup.py 安装任何依赖项,如本过时示例中所述:
但是,在运行示例时,我收到错误消息,指出没有名为 osgeo.gdal 的模块。
对于纯 python 依赖项,我也尝试传递 --requirements_file
参数,但是我仍然收到错误:Pip install failed for package: -r
我可以找到向 apache_beam 添加依赖项的文档,但不能找到向数据流添加依赖项的文档,根据我对 --requirements_file
和 --setup_file 的测试,apache_beam 指令似乎不起作用
最佳答案
这已在评论中得到回答,为了清楚起见,在此处重写:
在 Apache Beam 中,您可以修改 setup.py 文件,该文件将在启动时每个容器运行一次。此文件允许您在 SDK Harness 开始从 Runner Harness 接收命令之前执行任意命令。
完整的example可以在 Apache Beam 存储库中找到。
关于python - Google Cloud 数据流依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996028/