При использовании двоичного файла pyspark в лямбда-функции AWS процесс шлюза Java-ошибки завершился, прежде чем драйвер получил свой номер порта - PullRequest
0 голосов
/ 02 мая 2018

У меня проблемы с моей лямбда-функцией (python 3.6), лямбда-функция использует pyspark (двоичные файлы spark-2.3.0-bin-hadoop2.7).

Поскольку бинарные файлы pyspark довольно большие (zip-файл 226 МБ), я загрузил zip-файл в корзину S3. Функция лямбда разархивирует файл в папку / tmp. После разархивирования pyspark для папок и файлов предоставляются разрешения:

for root, dirs, filenames in os.walk(/tmp/spark):
    for d in dirs:
        os.chmod(os.path.join(root, d), 0o775)
    for f in filenames:
        os.chmod(os.path.join(root, f), 0o775)

В лямбда-функции переменная окружения SPARK_HOME была установлена ​​со значением / tmp / spark

Также:

sys.path.append('/tmp/spark/python')
sys.path.append('/tmp/spark/python/lib/py4j-0.10.6-src.zip')

from pyspark import SparkContext
from pyspark import SparkConf
from pyspark.sql import SQLContext
from pyspark.sql import SparkSession
from pyspark.sql.types import *

...
...
sc = SparkContext(appName="ProjectCSV")
sqlContext = SQLContext(sc)
...
...

Как только SparkContext (appName = "ProjectCSV") выполняет, он сообщает о следующей ошибке:

Java gateway process exited before sending the driver its port number

Переменная среды PYSPARK_SUBMIT_ARGS была добавлена ​​следующим образом:

os.environ['PYSPARK_SUBMIT_ARGS'] = "--master local[2] pyspark-shell"

Все еще сообщает о той же ошибке.

Есть идеи или предложения, в чем может быть проблема и как я могу решить эту проблему?

1 Ответ

0 голосов
/ 24 февраля 2019

Попробуйте проверить, установлен ли JAVA_HOME в среде. Если нет, то, возможно, java не был установлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...