在Spark 2.0版本中,引入了sparkSession这一新入口来运行spark代码。在交互模式中,已经自动创建了名为spark的SparkSession和名为sc的SparkContext。在独立应用程序中,可以直接创建SparkSession,也可以先创建SparkContext,再通过SparkContext创建SparkSession。比如,在databricks上:
#不通过sparkContext直接创建sparkSession
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
#通过sparkContext创建sparkSession
from pyspark import SparkContext
from pyspark.sql import SparkSession
sc = SparkContext.getOrCreate() #交互模式中,已经存在SparkContext时需要这样写
#在独立应用程序中,不存在SparkContext,context = SparkContext(appName="test_brocast")
sc_session = SparkSession(sc)
SparkSession和SparkContext分别负责的功能待补。
参考文章: