如何检查SparkContext是否已停止?

时间:2016-03-16 18:47:36

标签: apache-spark pyspark

如何检测SparkContext是否stopped

3 个答案:

答案 0 :(得分:8)

这适用于写入时间的Scala / Java API

在Spark发布1.6版之前,您将无法检查它,只能触发它:

sc.stop()

从版本1.6及更高版本开始,您有一个布尔函数,如果上下文停止或正在停止,则返回true:

sc.isStopped

这适用于PySpark API

感谢@ zero323评论:

sc._jsc.sc().isStopped()

它为您提供了Java SparkContext

答案 1 :(得分:1)

如果使用spark 1.5,可以通过反射API完成:

boolean isStopped(SparkContext sc) throws NoSuchFieldException, IllegalAccessException {
    Field f = sc.getClass().getDeclaredField("stopped"); 
    f.setAccessible(true);
    AtomicBoolean stopped = (AtomicBoolean) f.get(sc);
    return stopped.get();
}

答案 2 :(得分:0)