开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:SparkSQL 初体验_Dataset 和 DataFrame】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/690/detail/12037
SparkSQL 初体验_Dataset 和 DataFrame
内容介绍:
一、SparkSession
二、Dataset 和 DataFrame
一、SparkSession
l 因为老的 Spark Context 已经不太适用于 Spark SQL
l Spark SQL需要读取更多的数据源,更多数据源的写入
l 应该支持老的 Context
l 支持更多数据源,创建一整套读写的体系
二、Dataset 和 DataFrame
在之前案例中,还说了一个概念,叫做 DS,我们一直在说 DS Dataset,但是,什么是 Dataset,什么是 DataFrame,这是我们接下来一小节的内容。通过了解 Dataset 和 DataFrame,大家就能对整个 spark SQL 的体系有一个比较直观的一个印象。
进入到 idea 当中。刚才我们说的是 SparkSession,接下来我们要说的是 personDS,可以加上它的类型,它的类型就是 Dataset,只不过这个 Dataset 当中,他的幻想是一个 person,接下来,我们进入到笔记当中来说这个 Dataset。
首先,我们在 RDD 中存储一个 person 对象,他会把这个 person 对象当成一整个对象来使用。
比如说,我拿到 RDD 的来进行 map 的时候,然后再进行 map 的时候,是不是只能拿到这个 item 拿到一整个 item 来进行相应的这个操作,但是,对于 DateFrame 和 Dataset 来说,他就能干这样的事儿,比如说,叫做 DSmap,那在这个 map 中,我们是不是可以直接读这个 person 当中的某一个列。
如果是这样的话,他们最大的区别是什么?最大的区别就是 RDD 当中并不知道你这个 item 是什么,只会序列化一下,然后再给你对象。那对于 Dataset 来说,它是明确的,知道你这个对象里面都有什么,比如说,对于 DateFrame 来说,它是有一个 steamer 信息的,他会把整个数据集划分为不同的列和不同的行,知道有多少个列,也知道哪个列应该存放什么类型的数据,这就是我们所说的 DateFrame 的最大特点。
以及他们 API 上也会有很大的这个特点。所以 Spark SQL 的命令是操作相相比于这个 RDD 来说,可以通过 schema 信息直接访问其中的某一列信息,所以,我们要有一个单独的视频来去彰显这一节的重要性,我们整个 spark SQL 研究的是什么?
就是 data set 和 dataframe,我们暂时没有用到,接下来,再去说 data frame。