SparkSql:数据抽象(DataFrame与DataSet详解)

DataFrame

  • 什么是DataFrame
    DataFrame是一种以RDD为基础的带有Schema元信息的分布式数据集,类似于传统数据库的二维表格 。
    在这里插入图片描述

DataSet

  • 什么是DataSet
    DataSet是保存了更多的描述信息,类型信息的分布式数据集。
    与RDD相比,保存了更多的描述信息,概念上等同于关系型数据库中的二维表。
    与DataFrame相比,保存了类型信息,是强类型的,提供了编译时类型检查,
    调用Dataset的方法先会生成逻辑计划,然后被spark的优化器进行优化,最终生成物理计划,然后提交到集群中运行!
    在这里插入图片描述

DataSet包含了DataFrame的功能,
Spark2.0中两者统一,DataFrame表示为DataSet[Row],即DataSet的子集。
DataFrame其实就是Dateset[Row]
在这里插入图片描述

RDD、DataFrame、DataSet的区别

  • 结构图解
    在这里插入图片描述
    RDD[Person]
    以Person为类型参数,但不了解 其内部结构。

DataFrame
提供了详细的结构信息schema列的名称和类型。这样看起来就像一张表了


DataSet[Person]
不光有schema信息,还有类型信息


发布了218 篇原创文章 · 获赞 330 · 访问量 29万+

猜你喜欢

转载自blog.csdn.net/weixin_43563705/article/details/105699943
今日推荐