Spark中RDD与DataFrame与DataSet的区别与联系

1.概述

这是一个面试题

  1. 在Spark中,DataFrame是一种以RDD为基础的分布式数据集,类似传统数据库中的二维表格
  2. DataFrame与RDD的主要区别在于,前者带有schema元数据信息,既DataFram所表示的二维数据集的每一列都带有名称和类型
  3. 而RDD,由于无从得知所存储数据元素的具体内部结构,Spark Core只能在stage层面进行简单,通用的流水线优化。

Spark中RDD与DataFrame与DataSet的区别与联系_第1张图片

2.例子说明

下面创建一个RDD

Spark中RDD与DataFrame与DataSet的区别与联系_第2张图片

创建一个DataFrame

Spark中RDD与DataFrame与DataSet的区别与联系_第3张图片

可以看到DataFram是有schema的。

总结RDD是可以知道返回对象是什么,DataFrame是知道返回的具体的属性数据类型是什么。而DataSet是综合了两个的优点。

你可能感兴趣的:(大数据-spark)