лямбда-функция python, использующая pyspark, не может инициализировать сеанс spark - PullRequest
0 голосов
/ 15 мая 2019

У меня есть лямбда-функция python, которая запрашивает в sql и сохраняет результат в S3 в виде файла ORC. для преобразования в ORC я использую pyspark.

проверил его локально, и он отлично работает, но когда я загрузил его в AWS, лямбда-ошибка завершается со следующей ошибкой: ошибка инициализации модуля Процесс шлюза Java завершился перед отправкой его номера порта

попытался добавить переменную env PYSPARK_SUBMIT_ARGS = "- master local [2] pyspark-shell" после того, как увидел его в каком-то посте, но безуспешно.

У меня нет фактических знаний в spark, и я использую их только для преобразования моего файла в ORC.

кто-нибудь сталкивался с этой проблемой и решил ее как-нибудь?

прикрепление блока кода, который использует искру в моей лямбде (не вся лямбда, как это делает многие другие вещи, которые не связаны)

spark = SparkSession.builder.appName("Python Spark *SQL data source").getOrCreate()
_RECORD_FIELDS = ['device_id', 'count']

def __convert_csv_to_orc(file_name):
    orc_filepath = file_name.replace('csv', 'orc')
    try:
        df = spark.read.load(file_name, format="csv", sep=",", inferSchema="true", header="true")
        df.select(*_RECORD_FIELDS).coalesce(1).write.orc(orc_filepath)
        return [f for f in os.listdir(orc_filepath) if f.endswith('.orc')]
    except Exception:
        logging.exception('failed to convert csv file to orc: %s' % file_name)
        sys.exit(1)
...