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) 收藏 举报
浙公网安备 33010602011771号