为什么我不需要在Databricks中创建SparkSession?SparkSession是在设置集群时自动创建的吗?还是其他人为我创建的?
qacovj5a1#
这只在笔记本中完成,以简化用户的工作,避免他们指定不同的参数,其中许多参数不会有任何效果,因为Spark已经启动。这种行为类似于启动spark-shell或pyspark时的情况-它们都初始化SparkSession和SparkContext:
spark-shell
pyspark
SparkSession
SparkContext
Spark context available as 'sc' (master = local[*], app id = local-1635579272032). SparkSession available as 'spark'.
但是如果你从jar或Python wheel运行代码作为job,那么你有责任创建相应的对象。
wgmfuz8q2#
在Databricks环境中,而在Spark 2.0中,可以通过SparkSession实现相同的效果,而无需显式创建SparkConf,SparkContext或SQLContext,因为它们被封装在SparkSession中。使用构建器设计模式,如果不存在SparkSession对象,它将示例化SparkSession对象沿着相关的底层上下文。ref:link
2条答案
按热度按时间qacovj5a1#
这只在笔记本中完成,以简化用户的工作,避免他们指定不同的参数,其中许多参数不会有任何效果,因为Spark已经启动。这种行为类似于启动
spark-shell
或pyspark
时的情况-它们都初始化SparkSession
和SparkContext
:但是如果你从jar或Python wheel运行代码作为job,那么你有责任创建相应的对象。
wgmfuz8q2#
在Databricks环境中,而在Spark 2.0中,可以通过SparkSession实现相同的效果,而无需显式创建SparkConf,SparkContext或SQLContext,因为它们被封装在SparkSession中。使用构建器设计模式,如果不存在SparkSession对象,它将示例化SparkSession对象沿着相关的底层上下文。ref:link