У меня есть архив (в основном связанная среда conda + мое приложение), который я могу легко использовать с pyspark в режиме мастера пряжи:
PYSPARK_PYTHON=./pkg/venv/bin/python3 \
spark-submit \
--conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./pkg/venv/bin/python3 \
--master yarn \
--deploy-mode cluster \
--archives hdfs:///package.tgz#pkg \
app/MyScript.py
Это работает, как ожидалось, здесь нет ничего удивительного.
Как я могу запустить это, если MyScript.py находится внутри package.tgz. не в моей локальной файловой системе?
Я хотел бы заменить последнюю строку моей команды, например, на. ./pkg/app/MyScript.py
, но потом Spark жалуется: java.io.FileNotFoundException: File file:/home/blah/pkg/app/MyScript.py does not exist
.
Я, конечно, мог бы сначала извлечь его, поместить отдельно на hdfs ... Есть обходные пути, но так как у меня все есть в одном красивом месте, мне бы очень хотелось для его использования.
Если актуально, это Spark 2.4.0, python 3.7, на CDH.