任何Spark应用程序的第一步都是创建一个SparkSession。在交互模式中,通常已经为你预先创建了,但在应用程序中你必须自己创建。一些老旧的代码可能会使用new SparkContext这种方法创建,但是应该尽量避免使用这种方法,而是推荐使用SparkSession的构建器方法,该方法可以更稳定地实例化Spark和SQL Context,并确保没有多线程切换导致的上下文冲突,因为可能有多个库试图在相同的Spark应用程序中创建会话:
// 采用Scala语言创建SparkSession
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder().appName("Databricks Spark Example")
.config("spark.sql.warehouse.dir", "/user/hive/warehouse")
.getOrCreate()
在创建SparkSession后,你就应该可以运行你的Spark代码了。通过SparkSession,你可以相应地访问所有低级的和老旧的Spark功能和配置。请注意,SparkSession类是在Spark 2.X版本后才支持的,你可能会发现较旧的代码会直接为结构化API创建SparkContext和SQLContext。