【问题标题】:Initialize virtual environment from requirements.txt while submitting PySpark job to Google Dataproc在将 PySpark 作业提交到 Google Dataproc 时从 requirements.txt 初始化虚拟环境
【发布时间】:2020-08-23 19:22:14
【问题描述】:

我想在默认运行 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 的后初始化脚本方式。我真的很想避免这种情况。

【问题讨论】:

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


    【解决方案1】:

    在集群上安装要求对您有帮助吗?从 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

    【讨论】:

    • 不是很有帮助,因为需求在不断变化,我们从 Airflow 启动 dataproc,因此添加元数据似乎不是一个非常可维护的解决方案。最好像我们在正常的 spark 应用程序中那样创建一个 jar。
    猜你喜欢
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多