我正在尝试使用PySpark执行Python脚本。但是,对工作至关重要的一个库是Google Cloud's Firestore API client google-cloud-firestore
。我需要访问Firestore数据库中的数据才能运行代码。
问题在于它依赖于GRPC的C实现,因此无法与我所依赖的其他Python库一起压缩并传递给spark-submit
查询。
我已经阅读了有关将库烘焙到Spark映像中或在节点启动时运行它的内容,但是却在PySpark框架中苦苦寻找如何做到这一点。
如果我执行以下行(libs.zip
具有包括Firestore在内的所有依赖关系,jobs.zip
具有用于运行作业的所有Python代码,只要它们不依赖于访问就可以正常工作Firestore):
spark-submit --py-files jobs.zip,libs.zip main.py --job myjob
我收到以下错误:
ImportError: cannot import name 'cygrpc' from 'grpc._cython'
所以,我的问题是如何将google-cloud-firestore
库合并到PySpark框架中,以便可以从Firestore访问数据?
编辑:libs.zip
包含requirements.txt
中列出的所有下载的Python库,其中包括google-cloud-firestore
,grpc
和grpcio
。为了说明: