1.概述
这是一个面试题
- 在Spark中,DataFrame是一种以RDD为基础的分布式数据集,类似传统数据库中的二维表格
- DataFrame与RDD的主要区别在于,前者带有schema元数据信息,既DataFram所表示的二维数据集的每一列都带有
名称和类型
。 - 而RDD,由于无从得知所存储数据元素的具体内部结构,Spark Core只能在stage层面进行简单,通用的流水线优化。
2.例子说明
下面创建一个RDD
创建一个DataFrame
可以看到DataFram是有schema的。
总结:RDD是可以知道返回对象是什么,DataFrame是知道返回的具体的属性数据类型是什么。而DataSet是综合了两个的优点。