Отправка заданий Spark с использованием исполняемого файла python вместо spark-submit

#apache-spark #pyspark #spark-submit

#apache-искра #pyspark #spark-отправить

Вопрос:

В программе PySpark после pyspark добавления модулей в path я могу импортировать from pyspark.sql import SparkSession и создавать экземпляры SparkSession .

Когда можно отправлять задания pyspark с использованием python3 исполняемого файла (например python3 myApp.py , вместо spark-submit myApp.py ? Я протестировал это локально в клиентском режиме, и, кажется, все работает нормально. А как насчет cluster режима? Что делает необходимым его использование spark-submit в определенных ситуациях?

Использование python3 исполняемого файла для вызова приложения упрощает отладку программы с помощью IDE, такой как PyCharm (насколько я знаю).

Ответ №1:

Вам нужна следующая переменная в вашем коде со значением, зависящим от вашего пути python и пути pyspark python:

 import os
import findspark
findspark.init('/usr/lib/spark')
os.environ['PYSPARK_PYTHON']="/usr/bin/python3"
os.environ['PYSPARK_DRIVER_PYTHON']="/usr/bin/python3"
os.environ['PYSPARK_SUBMIT_ARGS'] = """
    --name job_name
    --master yarn
    --deploy-mode client / cluster 
    pyspark-shell"""
 

Вы также можете определить другую конфигурацию.