如何在py spark代码中检查sparkSession状态?要求是检查sparkSession是否处于活动状态。如果sparksession未处于活动状态,则创建另一个spark会话并调用某个函数
我正在Jupyter笔记本中编写和运行此代码。
spark = SparkSession.builder.master("yarn") \
.config("spark.dynamicAllocation.enabled", "true") \
.config("spark.serializer",
"org.apache.spark.serializer.KryoSerializer")
.config("spark.shuffle.spill.compress", "true")
.config("spark.shuffle.service.enabled", "true")
.config("spark.io.compression.codec", "snappy")
.config("spark.kryoserializer.buffer.max", "250m") \
.config("spark.driver.memory", memory) \
.config("spark.driver.cores", cores) \
.config("spark.executor.cores", cores) \
.config("spark.executor.memory", memory) \
.config("spark.executor.instances", cores) \
.enableHiveSupport()\
.getOrCreate()
3。
if(spark):
print("yes")
else:
print("no")
打印“是”
spark.stop()
它停止了spark应用程序-我在UI中签入
但是当我再次在第三步中运行代码时
5。
if(spark):
print("yes")
else:
print("no")
打印“是”作为输出
error : AttributeError: 'NoneType' object has no attribute 'sc'
df = spark.read.csv(file_name)
它创建了另一个应用程序并开始执行代码。
我试图了解sparkSession是否被杀死
观察: 一种。 if(spark)给出了TRUE,因为它是在此基础之下的种类。 b。当我只写“ spark”时-给我错误 C。 spark.read.csv ----没有给出任何错误并启动了一个新的应用程序,但过了一会儿抛出了错误- “无法在已停止的SparkContext上调用方法。”
要求是在我的代码/应用程序运行时检查sparkSession如何停止或失败..它应该自动重启
我当时想写
def func1:
create spark session
code to execute
def func2:
while spark is active :
time.sleep(200)
if !spark is active:
func1()
func1()
func2()