Мы запустили новый искровой кластер в EMR, на котором работает Spark 2.3.0, и пытаемся выполнить ту же команду, что и в кластере, на котором работает Spark 2.2.0, но мы получаем трассировку: java.io.IOException: Cannot run program "./venv/bin/python": error=2, No such file or directory
.
Команда, которую мы выполняем:
PYSPARK_PYTHON=./venv/bin/python PYSPARK_DRIVER_PYTHON=python
$SPARK_HOME/bin/spark-submit --py-files=dist/project_main-1.0.0-
py2.7.egg --master=yarn --deploy-mode=client --archives=venv.zip#venv -
-packages org.apache.derby:derbytools:10.14.1.0,org.apache.derby:derbyclient:10.14.1.0,com.github.databricks:spark-avro:204864b6cf,com.databricks:spark-redshift_2.11:3.0.0-preview1,com.databricks:spark-csv_2.11:1.5.0,com.amazon.redshift:redshift-jdbc42:1.2.12.1017 --repositories https://jitpack.io,http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release --executor-memory 4g project_main/main.py
Мы убедились, что virtualenv можно перемещать, и перепробовали различные комбинации PYSPARK_PYTHON
, --archives
и --files
в команде искры представить.Мы попытались опустить PYSPARK_PYTHON
, но он не работал внутри virtualenv, и нам не хватало наших пакетов и библиотек.
Изменилось ли поведение PYSPARK_PYTHON
или PYSPARK_DRIVER_PYTHON
или --archives
с 2,2 на 2,3?