SparkSession与SparkContext SparkConf SQLContext HiveContext StreamingContext

本文详细介绍了SparkSession如何整合SparkContext、SQLContext、HiveContext和StreamingContext,简化了Spark应用的开发流程。通过示例代码展示了如何使用SparkSession进行配置和创建,以及如何利用其统一接口进行大数据处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SparkSession与SparkContext SparkConf SQLContext HiveContext StreamingContext
参考blog:https://blog.youkuaiyun.com/dufufd/article/details/79088891

1.
SparkContext:

val sparkConf = new SparkConf().setAppName("SparkSessionZipsExample").setMaster("local")
val sc = new SparkContext(sparkConf).set("spark.some.config.option", "some-value")

SparkConf、SparkContext和SQLContext都已经被封装在SparkSession当中。
通过SparkSession来创建SparkContext。
JavaSparkContext sc = new JavaSparkContext(spark.sparkContext());


2.
SqlContext:

在2.0版本之前,使用Spark必须先创建SparkConf和SparkContext,代码如下:

val sparkConf = new SparkConf().setAppName("SparkSessionZipsExample").setMaster("local")
val sc = new SparkContext(sparkConf).set("spark.some.config.option", "some-value")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

 
不过在Spark2.0中只要创建一个SparkSession就够了,SparkConf、SparkContext和SQLContext都已经被封装在SparkSession当中。
下面的代码创建了一个SparkSession对象并设置了一些参数。这里使用了生成器模式,只有此“spark”对象不存在时才会创建一个新对象。
SparkSession统一了sqlcontext和hivecontext。

val warehouseLocation = "file:${system:user.dir}/spark-warehouse"
val spark = SparkSession
.builder()
.appName("SparkSessionZipsExample")
.config("spark.sql.warehouse.dir", warehouseLocation)
.enableHiveSupport()
.getOrCreate()

spark.conf.set("spark.sql.shuffle.partitions", 6)


3.
StreamingContext:

有两种创建StreamingContext的方式:
val conf = new SparkConf().setAppName(appName).setMaster(master);
val ssc = new StreamingContext(conf, Seconds(1));

StreamingContext,还可以使用已有的SparkContext来创建
val sc = new SparkContext(conf)
val ssc = new StreamingContext(sc, Seconds(1));


sparksession创建StreamingContext,把sc换成spark.sparkContext()即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值