У меня проблемы с моей лямбда-функцией (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"
Все еще сообщает о той же ошибке.
Есть идеи или предложения, в чем может быть проблема и как я могу решить эту проблему?