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.