Dataset是在Spark1.6中添加的新的接口,是DataFrame API的一个扩展,是Spark最新的数据抽象,结合了RDD和DataFrame的优点。
- 与RDD相比:保存了更多的描述信息,概念上等同于关系型数据库中的二维表;
- 与DataFrame相比:保存了类型信息,是强类型的,提供了编译时类型检查,调用Dataset的方法先会生成逻辑计划,然后被Spark的优化器进行优化,最终生成物理计划,然后提交到集群中运行;
1. 什么是DataSet
Dataset是一个强类型的特定领域的对象,这种对象可以函数式或者关系操作并行地转换。

从Spark 2.0开始,DataFrame与Dataset合并,每个Dataset也有一个被称为一个DataFrame的类型化视图,这种DataFrame是Row类型的Dataset,即Dataset[Row]。

Dataset API是DataFrames的扩展,它提供了一种类型安全的,面向对象的编程接口。它是一个强类型,不可变的对象集合,映射到关系模式。在数据集的核心 API是一个称为编码器的新概念
本文详细介绍了Spark中的DataSet,作为DataFrame的扩展,DataSet结合了RDD和DataFrame的优点,提供了编译时类型安全和优化的执行计划。文章对比了RDD、DataFrame与DataSet,解释了它们之间的区别,并展示了创建DataSet的不同方式以及它们之间的转换方法。通过对数据结构的理解,阐述了DataFrame的优化和Dataset的类型安全特性,最后总结了RDD、DataFrame和Dataset各自的特点和应用场景。
订阅专栏 解锁全文
1493

被折叠的 条评论
为什么被折叠?



