如何检测SparkContext
是否stopped?
答案 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)