RDD
弹性分布式数据集
DataFrame,更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema,。
同时,与hive类似,DataFrame也支持嵌套数据类型(struct,array,map),
从API易用性来看,DataFrameAPI提供的时一套高层的关系操作,比函数式的RDDAPI更加友好,门槛更低。
DataSet
是DataFrame API的一个扩展,是Spark最新的数据抽象
用户友好的API峰哥,机油类型安全检查,也有查询优化特效
支持编码解码器,当需要访问非堆上的数据时,可以避免反序列化整个对象,提高效率。
区别:
Dataframe是Dataset的特例,DataFrame=DataSet[Row], 所以可以用as方法将DataFrame转化成DataSet,Row是一个类型,和Car,Person这些类型一样。
DataSet是强类型的。
DataFrame只是知道字段,但不知道字段的类型