我们可以在一次提交作业中使用 Kubernetes 中的多个启动和停止 Spark 会话吗?
比如:如果我使用这个提交一份工作
bin/spark-submit \
--master k8s://https://<k8s-apiserver-host>:<k8s-apiserver-port> \
--deploy-mode cluster \
--name spark-pi \
--class org.apache.spark.examples.SparkPi \
--conf spark.executor.instances=5 \
--conf spark.kubernetes.container.image=<spark-image> \
local:///path/to/examples.jar
在我的 python 代码中,我可以启动和停止 Spark 会话吗?
示例:
# start spark session
session = SparkSession \
.builder \
.appName(appname) \
.getOrCreate()
## Doing some operations using spark
session.stop()
## some python code.
# start spark session
session = SparkSession \
.builder \
.appName(appname) \
.getOrCreate()
## Doing some operations using spark
session.stop()
可不可以?
您可以使用 session.newSession() 创建一个新的 Spark 会话。新会话将具有隔离的 SQL 配置、临时表、注册函数,但与前一个会话共享底层
SparkContext
和缓存数据。
# start spark session
session1 = SparkSession \
.builder \
.appName(appname) \
.getOrCreate()
# start new spark session
session2 = session1.newSession()