【发布时间】:2018-04-09 19:05:51
【问题描述】:
我创建了一个 SparkSession(使用 enabledHiveSupport())并在本地运行。 我想在一个 SparkSession 中执行一组 sql,停止它并启动另一个。
但是当我停止 SparkSession 并使用 SparkSession.builder() 获取新的 SparkSession 时,我得到了一个新的 SparkSession 对象,但 sql 失败并显示“另一个 Derby 实例可能已经启动了数据库..”
由于每个 JVM 只能有一个 SparkContext,这是否意味着我无法获取或创建 SparkSession,停止并重复?
有什么方法可以每次在新会话中执行一组 sql? (我知道有 SparkSession.newSession,但我也无法停止该会话,因为底层共享 SparkContext 将停止,对吗?)
【问题讨论】:
-
为什么不能保持会话打开?
-
我正在超越堆空间,因为我正在对不同的数据分区进行重复操作。我没有足够的经验说这是主要原因,但我认为一些旧数据框填充了会话中的堆空间。因此,我想清除会话。
标签: apache-spark apache-spark-sql