# DataFrame

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/13161.html | 发布：2022-11-24 | 更新：2022-11-24 | 分类：建站教程、投稿分享

## 1.1 DataFrame是什么

 
 
- DataFrame是一种以RDD为基础的分布式数据集，类似于传统数据库中的二维表格。 

 

## 1.2 DataFrame和RDD的区别

 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0PH9hGCO-1655396298057)(assets/1653400255144.png)]

 
 
- 上图直观地体现了DataFrame和RDD的区别。 
- DataFrame是基于RDD之上的分布式数据集，给予Schema信息。

 
 
  - 左边：RDD -> 数据外在类型：Person（CaseClass），内部结构不知道 
  - 右边：DataFrame -> 数据内部结构，全部知道，包含字段名称和字段类型，但是不知道外部类型，Row类型（弱类型） 

 

`DataFrame = RDD[Row] + Schema` 

 

## 1.2 RDD与DataFrame性能

 
 
- Spark SQL性能上比RDD要高。因为Spark SQL了解数据内部结构，从而对藏于DataFrame背后的数据源以及作用于DataFrame之上的变换进行了针对性的优化，最终达到大幅提升运行时效率的目标。反观RDD，由于无从得知所存数据元素的具体内部结构，Spark Core只能在Stage层面进行简单、通用的流水线优化。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
