根据API文档:
getActiveSession()返回构建器返回的当前线程的活动SparkSession。
getDefaultSession()返回构建器返回的默认SparkSession。
我(很可能是错误地)getActiveSession用来在多个线程中检索SparkSession或SparkContext在某些函数中。有时未定义activeSession(很可能是因为线程刚刚启动)。
有人可以解释两者之间的区别,还是API文档足够自解释?
另外,我当会用getActiveSession,如果
在99%的应用中,只有一个会话,
getDefaultSession 应该返回该会话
ActiveSession用于单线程,而用于DefaultSession全局。该DefaultSession是ActiveSession由默认的主线程。SparkSession对象共享相同的SparkContext. 但它们可能有不同的状态,如 SQL 配置、临时表和注册函数。In 99% of apps there is only one session,你说得对,其实超过99%。ActiveSession什么时候可能需要?
DefaultSession,则必须为每个数据框使用不同的名称,例如city_1, city_2。ActiveSession(您可以通过创建新会话SparkSession.newSession),您可以注册所有具有相同名称的临时视图city,一切都变得简单。SparkSession.active可以帮助您DefaultSession在ActiveSession不存在时坠落| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |