RDD、DataFrame、DataSet的区别

●结构图解

RDD[Person]以Person为类型参数,但Spark框架本身不了解 Person类的内部结构。

DataFrame提供了详细的结构信息schema,使得Spark SQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。这样看起来就像一张表了

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

●数据图解

1.假设RDD中的两行数据长这样:

RDD[Person]

2.那么DataFrame中的数据长这样

DataFrame = DataSet[Row] = RDD[Person] - 泛型 + Schema + SQL操作 + 优化

3.那么Dataset中的数据长这样(每行数据是个Object):

Dataset[Person] = DataFrame + 泛型

或者长这样:Dataset[Row]

总结

DataFrame = RDD - 泛型  +  Schema  + SQL + 优化

DataSet = DataFrame  + 泛型

DataSet  =  RDD   +  Schema  + SQL + 优化

DataFrame = DataSet[Row]

猜你喜欢

转载自blog.csdn.net/qq_38483094/article/details/98787864