SparkSession

(1)SparkContext

SparkContext是Spark中Driver程序的一部分,向资源管理器cluster manager(可以是mesos、yarn、standalone)申请spark应用所需的资源executor,资源管理器在各个worker上分配一定的executor。

当我们编写pyspark程序时,SparkContext是使用spark功能的入口点

 SparkContext主要用于创建和操作RDD。

 

//set up the spark configuration
val sparkConf = new SparkConf().setAppName("hirw").setMaster("yarn")
//get SparkContext using the SparkConf
val sc = new SparkContext(sparkConf)

(2)SparkSession

SparkSession是Spark2.x后引入的概念。在2.x之前,对于不同的功能,需要使用不同的Context——

  • 创建和操作RDD时,使用SparkContext
  • 使用Streaming时,使用StreamingContext
  • 使用SQL时,使用sqlContext
  • 使用Hive时,使用HiveContext

在2.x中,为了统一上述的Context,引入SparkSession,实质上是SQLContext、HiveContext、SparkContext的组合。

SparkSession内部封装了SparkContext,所以计算实际上是由SparkContext完成的。

也就是需要sparksql或者hive时候选择SparkSession,否则直接用SparkContext就可以了

val spark = SparkSession
.builder()
.appName("hirw-test")
.config("spark.some.config.option", "some-value")
.getOrCreate()

 

posted on 2020-10-28 18:49  happygril3  阅读(260)  评论(0)    收藏  举报

导航