2016-07-20 95 views
1

当运行pyspark时,如果你做了一个Ctrl + z在进程中间,它会停止运行但不关闭SparkContext。这意味着端口也不会关闭,并且火花必须跳过几个端口才能在下次有人运行火花作业时进行连接。我想防止人们使用Ctrl + Z运行这些脚本时,但标准python处理程序似乎不工作时,SparkContext正在运行,我认为这是事实的结果,它在技术上运行在Java我只为python设置了一个处理程序?这是我写的一个样本。Pyspark把手Ctrl + Z?

import signal 
    from pyspark import SparkContext 
    sc = SparkContext() 

    def handler(signum, frame): 
     print 'Please refrain from using CTRL + Z, use CTRL + C instead' 

    signal.signal(signal.SIGTSTP, handler) 

    while True: 
     pass 

当我运行此代码,按下Ctrl键+ž仍然不暂停,而不是执行我的处理函数的默认行为。

此代码工作,我希望它的方式,如果我消除火花内容像这样:

import signal 

    def handler(signum, frame): 
     print 'Please refrain from using CTRL + Z, use CTRL + C instead' 

    signal.signal(signal.SIGTSTP, handler) 

    while True: 
     pass 

回答

0

我最终什么事做就在火花之前加入trap "" SIGTSTP我的火花提交shell脚本提交。