RDD vs DataFrames vs DataSet

  在SparkSQLSpark为我们提供了两个新的抽象,分别是DataFrame和DataSet

  他们和RDD有什么区别呢?首先从版本的产生上来看:

 

  RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6)

 

  如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。

 

1.1.1 RDD

 

  • RDD是一个懒执行不可变的可以支持Lambda表达式的并行数据集合。
  • RDD的最大好处就是简单,API的人性化程度很高
  • RDD的劣势是性能限制,它是一个JVM驻内存对也就决定了存在GC的限制和数据增加时Java序列化成本的升高。

 

1.1.1 Dataframe

 

  与RDD类似,DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema

 

 

 

 

 

 

posted @ 2019-05-15 20:20  Vowzhou  阅读(234)  评论(0编辑  收藏  举报