Спарк не сохраняет df в impala

Пытаюсь реализовать следующий алгоритм:

  1. Загрузка df из impala в виде единственной колонки (100 тыс. строк), тип данных - string;
  2. Обработка каждой строки udf функцией с помощью df.withcolumn, на выходе новая колонка с обработанными данными (итого получается две колонки df, тип string)
  3. Запись полученного df с двумя колонками в impala через df.write.format("parquet").saveAsTable

Ошибка возникает на шаге 3, не могу записать результат в impala.

Виды ошибок:

  • EOF: read didn't return enought bytes;
  • unpack requires buffer of 4 bytes;
  • task failed while writing rows, json.decoder.JSONDecodeError: Unterminated string started at: line 1 column 116133 (char 116132).

ЗАМЕЧАНИЕ: при попытке реализовать алгоритм на менее объемной выборке (10 тыс. строк) ошибок не возникает, все успешно записывается в impala.

Исходные настройки спарк сессии:

.config('spark.driver.memory', '20g') \
.config('spark.executor.cores', 2) \
.config('spark.executor.memory', '20g') \
.config('spark.driver.memory', '20g') \
.config('spark.dynamicAllocation.enabled', True) \
.config('spark.dynamicAllocation.maxexecutors', 20) \
.config('spark.yarn.executor.memoryOverhead', '4095') \
.config('spark.serializer', 'org.apache.spark.serializer.KryoSerializer')

Что то надо добавить в настройках? В чем может быть проблема?

Спасибо.


Ответы (0 шт):