Инициализируйте виртуальную среду из файла requirements.txt при отправке задания PySpark в Google Dataproc. - PullRequest
4 голосов
/ 08 мая 2020

Я хотел отправить задание PySpark в кластере Datapro c, работающем по умолчанию Python 3. Я хотел инициализировать среду с помощью имеющегося у меня виртуального env.

Я пробовал два способа. Первый - заархивировать весь venv as, загрузить его как архив и отправить в кластер. Но моя работа не могла найти зависимости. например,

gcloud dataproc jobs submit pyspark --project=** --region=** --cluster=** \
  --archives gs://**/venv.zip#venv \
  --properties spark.pyspark.driver.python=venv/bin/python \
  gs://****.main.py

Второй метод заключался в том, что я пытался сказать искре создать для меня виртуальный env и установить требования из предоставленного мне файла требований, как указано в ссылке

Pyspark с Virtual env

Но оба подхода не удались. Кто-нибудь может помочь? Кроме того, я не хочу использовать go сценарий пост-инициализации Datapro c. Я бы очень хотел этого избежать.

1 Ответ

1 голос
/ 13 мая 2020

Поможет ли вам установка требований на кластер? Начиная с Datapro c image 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 в создание кластера

...