У меня есть лямбда-функция 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)