深入理解SparkSession(未完成)

版本变化

spark1.x

在Spark1.6中使用的为Hive on spark,主要是依赖hive生成spark程序,有两个核心组件SQLcontext和HiveContext。

// 创建SparkConf
val sparkConf = new SparkConf().setAppName("SparkSessionZipsExample").setMaster("local")
// 使用SparkConf创建SparkContext
val sc = new SparkContext(sparkConf).set("spark.some.config.option", "some-value")
// 使用SparkContext创建SQLContext
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

spark2.x

而Spark2.0中使用的就是SparkSQL,是后继的全新产品,解除了对Hive的依赖。

从Spark2.0以上的版本开始,spark是使用全新的SparkSession接口代替Spark1.6中的SQLcontext和HiveContext来实现对数据的ETL等工作,并且实现了SQLcontext和HiveContext的所有功能。

在新版本中并不需要之前那么繁琐的创建很多对象,只需要创建一个SparkSession对象即可。

SparkSession支持从不同的数据源加载数据,并把数据转换成DataFrame,并支持把DataFrame转换成SQLContext自身中的表。

然后使用SQL语句来操作数据,也提供了HiveQL以及其他依赖于Hive的功能支持。

与SparkContext的区别和联系

区别

  • SparkContext是基于RDD编程的,主要通过如下方法生成RDD
    1. textFile
    2. hadoopFile
    3. parallelize
    4. objectFile
    5. sequenceFile
    6. binaryFile
  • SparkSession主要通过DataFrame和Dataset进行编程
  • SparkSession可以通过read方法调用DataFrameReader类中定义的外部数据源读取方法,也可以自定义其他外部数据源的读取。
  • 通过createDataFrame方法,将RDD转化为Row对象,关联上StructType,可以将RDD转化为DataFrame

联系

  • SparkSession由SparkContext创建,即SC为SS的类成员属性,因此SparkSession包含SparkContext的功能

SparkSession的作用

功能简述

public方法功能
createDataFrame将rdd或者list转化为dataframe
read提供多种外部数据源格式的读取
udf
sql
baseRelationToDataFrame
createDataset
experimental
listenerManager
newSession
range
readStream
streams
teble
time
version

成员属性简述

public属性类型功能
sparkContextSparkContext
sharedStateSharedStatelazy
sessionStateSessionStatelazy
sqlContextSQLContext
confRuntimeConfiglazy
emptyDataFrameDataFramelazy
catalogCataloglazy
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值