[SPARK-8170] [PYTHON] Add signal handler to trap Ctrl-C in pyspark and cancel all running jobs

This patch adds a signal handler to trap Ctrl-C and cancels running job.

Author: Ashwin Shankar <ashankar@netflix.com>

Closes #9033 from ashwinshankar77/master.
This commit is contained in:
Ashwin Shankar 2015-10-12 11:06:21 -07:00 committed by Davies Liu
parent 149472a01d
commit 2e572c4135

View file

@ -19,6 +19,7 @@ from __future__ import print_function
import os
import shutil
import signal
import sys
from threading import Lock
from tempfile import NamedTemporaryFile
@ -217,6 +218,12 @@ class SparkContext(object):
else:
self.profiler_collector = None
# create a signal handler which would be invoked on receiving SIGINT
def signal_handler(signal, frame):
self.cancelAllJobs()
signal.signal(signal.SIGINT, signal_handler)
def _initialize_context(self, jconf):
"""
Initialize SparkContext in function to allow subclass specific initialization