spark 第一代API----RDD:
DataFrame核心特征:
A list of partitionsA function for computing each splitA list of dependencies on other RDDsOptionally,a Partitioner for key-value RDDs(e.g. to say the RDD is hash-partitioned)Optionally,a list of preferred locations to compute each splits on(e.g. block locations for an HDFS file)
spark 第二代API----DataFrame:
DataFrame核心特征:
包含了以Row为单位的每行数据的列信息,此时DataFrame就是Table;Tungsten:新的执行引擎;Catalyst:新的语法解析框架提升计算效率、减少数据读取、底层计算优化
spark 第三代API----DataSet:
DataSet核心价值和好处是:Encoder
编译时的类型安全检查,不需要再执行事情才发现类型不匹配;性能的极大提升;内存使用极大降低、减少GC......极大地减少网络数据的传输......极大地减少了采用Scala和Java编程的代码的差异性,DataSet还不支持Python 、R 补充: dataSet会同时可以兼顾Functional和Relational Programming;dataSet可以统一流计算、SQ、ML等的API编程dataSet最重要的是效率;底层的Tungsten的优化、Encoder、数据在内存和磁盘的存储等等