我想在默认运行 Python 3 的 Dataproc 集群中提交 PySpark 作业。我想用我拥有的虚拟环境初始化环境。
我尝试了两种方法,
一种是将整个 venv 压缩为压缩文件并将其作为存档上传并提交到集群。但是我的工作无法找到依赖项。例如
gcloud dataproc jobs submit pyspark --project=** --region=** --cluster=** \
--archives gs://**/venv.zip#venv \
--properties spark.pyspark.driver.python=venv/bin/python \
gs://****.main.py
第二种方法是我试图告诉 spark 为我创建一个虚拟环境,并从提供给我的需求文件中安装需求,如链接中所述
Pyspark with Virtual env
但是这两种方法都失败了。任何人都可以帮忙吗?
另外,我不想采用 Dataproc 的后初始化脚本方式。我真的很想避免这种情况。
最佳答案
在集群上安装需求对你有帮助吗?从 Dataproc 镜像 1.4 开始,您可以在创建集群时添加要求:
REGION=<region>
gcloud dataproc clusters create my-cluster \
--image-version 1.4 \
--metadata 'CONDA_PACKAGES=scipy=1.1.0 tensorflow' \
--metadata 'PIP_PACKAGES=pandas==0.23.0 scipy==1.1.0' \
--initialization-actions \
gs://goog-dataproc-initialization-actions-${REGION}/python/conda-install.sh,gs://goog-dataproc-initialization-actions-${REGION}/python/pip-install.sh
您也可以安装完整的Anaconda通过添加以下参数:
--optional-components=ANACONDA
到集群创建
关于apache-spark - 在将 PySpark 作业提交到 Google Dataproc 时从 requirements.txt 初始化虚拟环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61675711/