Spark SQL数据抽象-★★★★
引入
- 我们之前学习的
SparkCore中的RDD是Spark最为底层/基础的数据抽象
- 后续学习的其他的Spark的数据抽象底层都可以理解成是RDD
- SparkSQL的数据抽象底层也是RDD
- Spark1.0 SchemaRDD --已经淘汰 ,不再使用了
- Spark1.3 DataFrame --目前还继续使用
- Spark1.6 DataSet --目前还继续使用
- 所以对于SparkSQL的数据抽象,我们要学习
DataFrame 和DataSet
RDD和DataFrame 和DataSet
- DataFrame 和DataSet 是SparkSQL在不同版本中提供的SparkSQL的数据抽象
- 目前都有使用,具体的DataFrame和DataSet表示什么含义, 如下分析:
DataFrame
=RDD - 泛型 + Schema(约束) + SQL操作 + 优化
DataSet
=DataFrame + 泛型
DataSet
=RDD + Schema(约束) + SQL操作 + 优化
- DataFrame /DataSet 可以理解为分布式的表
图解-★★★★
注意
- 不管是DataFrame还是DataSet底层都可以理解为是
对RDD的封装
- 官方在新版本都是建议以后开发都是用DataFrame/DataSet,但是RDD更为基础和底层,代码灵活方便,所以一直都还有人使用
- 也就是说开发中RDD/DataFrame/DataSet三者都会使用