Остановка отправки Spark в PySpark 3.1: удобные методы и примеры кода

PySpark, API Python для Apache Spark, предоставляет мощные возможности для обработки крупномасштабных данных. При запуске заданий PySpark с использованием spark-submitважно иметь методы для остановки или прекращения выполнения задания Spark, если это необходимо. В этой статье блога мы рассмотрим различные способы остановки задания отправки Spark в PySpark 3.1, а также приведем примеры кода.

Метод 1: плавное завершение работы с использованием KeyboardInterrupt:

Один из самых простых способов остановить задание PySpark — использовать сигнал KeyboardInterrupt. Нажав Ctrl+Cв интерфейсе командной строки, где выполняется задание, вы можете отправить сигнал прерывания процессу, который корректно завершит задание Spark. Вот пример:

from pyspark.sql import SparkSession
if __name__ == "__main__":
    spark = SparkSession.builder.appName("MySparkJob").getOrCreate()
    try:
        # Your PySpark code here
        ...
    except KeyboardInterrupt:
        spark.stop()

Метод 2. Использование SparkContext:

Объект SparkContextв PySpark предоставляет метод stop(), который можно использовать для завершения задания Spark. Вот пример:

from pyspark import SparkContext
if __name__ == "__main__":
    sc = SparkContext(appName="MySparkJob")
    try:
        # Your PySpark code here
        ...
    finally:
        sc.stop()

Метод 3. Использование SparkSession:

Объект SparkSessionв PySpark также имеет метод stop(), который можно использовать для остановки задания Spark. Вот пример:

from pyspark.sql import SparkSession
if __name__ == "__main__":
    spark = SparkSession.builder.appName("MySparkJob").getOrCreate()
    try:
        # Your PySpark code here
        ...
    finally:
        spark.stop()

Метод 4. Закрытие приложения из командной строки:

Если у вас есть идентификатор приложения задания Spark, вы можете остановить его, выполнив в терминале следующую команду:

spark-submit --kill <application-id>

Замените <application-id>фактическим идентификатором приложения задания PySpark.

В этой статье мы рассмотрели несколько способов остановки задания отправки Spark в PySpark 3.1. Использование сигнала KeyboardInterrupt, метода stop()SparkContext, метода stop()SparkSession или завершение приложения из командной строки — эффективные способы завершения задания PySpark.. Имея в своем распоряжении эти методы, вы можете эффективно управлять и контролировать выполнение заданий PySpark.