Как заставить искру повторно использовать рабочие Python, если мы выполнили дорогостоящую настройку инициализации?Python

Программы на Python
Ответить
Anonymous
 Как заставить искру повторно использовать рабочие Python, если мы выполнили дорогостоящую настройку инициализации?

Сообщение Anonymous »

Я пытаюсь оптимизировать выполнение UDF панд в PySpark. Когда я запускаю UDF, я выполняю некоторые дорогостоящие инициализации, например загружаю модель машинного обучения. Это разовая операция, и я не хочу делать это повторно. Я хочу повторно использовать рабочие процессы Python с инициализированной настройкой.
Для этого я увидел, что искра предоставляет конфигурацию - spark.sql.execution.pyspark.udf.idleTimeoutSeconds.
Насколько я понимаю, исполнитель Python запускает рабочие процессы Python и отвечает за реализацию этого параметра. Бегун Python запускает рабочие процессы Python и продолжает проверять, превысили ли рабочие время ожидания простоя. Как только тайм-аут простоя превышен, рабочие уничтожаются. Но фабрика рабочих Python, которая создает рабочие процессы в исполнителях, имеет фиксированный тайм-аут в 60 секунд. Итак, если время простоя превышает 60 секунд, это не будет работать должным образом.
  • Правильно ли я понимаю ситуацию?
  • Если я хочу повторно использовать рабочие процессы Python после инициализации, как мне действовать?
Иллюстрация: Фабрика рабочих процессов Python
Ссылка: https://books.japila.pl/pyspark-interna ... erFactory/, https://blog.devgenius.io/apache-spark- ... 591c5f32bf
Версия Spark: 3.5.2, режим развертывания: несколько рабочих процессов в DBx, тип UDF: Pandas UDF (от итератора к итератору)
Пример кода UDF pandas (ссылка)
model_bc = spark.sparkContext.broadcast(ml_model)

@pandas_udf("long")
def infer(batches: Iterator[pd.Series]) -> Iterator[pd.Series]:
model = model_bc.value # initialize model
for plaintexts in batches:
... processing by model ...



Подробнее здесь: https://stackoverflow.com/questions/798 ... init-set-u
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»