apache-spark - 在将 PySpark 作业提交到 Google Dataproc 时从 requirements.txt 初始化虚拟环境

标签 apache-spark google-cloud-platform pyspark google-cloud-dataproc

我想在默认运行 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/

相关文章:

python - Spark : why is Decimal(36, 16) 6 位数字后四舍五入?

r - sparklyr hadoop配置

hadoop - Spark 上的 Apache pig

python-2.7 - 如何使用Python脚本将对象上传到Google Cloud Storage?

hadoop - 无法全局访问 Kafka Spark Streaming 中的数据

mysql - x-devapi 无法连接到 Google 应用程序引擎中的数据库

google-app-engine - 将 Google Cloud Memorystore 与 App Engine 服务连接

python - 两个表的行级比较

python - 如何将 RDD 保存到单个 Parquet 文件?

python - 在 Apache Spark 中拆分 DataFrame