DataFrame的缺点
DataFrame只是知道数据,但是 不知道数据的 类型,在编译的时候不能检查类型
比如:可以对一个String进行减法操作,在执行的时候才报错
解决
而DataSet不仅仅知道数据,而且知道字段类型,所以有更严格的错误检查。
Dataset介绍
Dataset相对出现的较晚(1.6版本开始出现)
Dataset提供了 强类型 支持,也是在RDD的每行数据加了类型约束
DataFrame 不仅有比RDD更多的算子,还可以进行执行计划的优化。
Dataset包含了DataFrame的功能,Spark2.0中两者统一
推荐使用 Dataset ,不行再选用DataFrame,其次选择RDD。
DataFrame 与 Dataset关系
源码可知:
type DataFrame = Dataset[Row]
也就是说 泛型是 Row 的 Dataset,就是 DataFrame,即:DataFrame 是 Dataset 的子集
参考:
https://www.jianshu.com/p/a19486f5a0ea
