第一课:理解Spark 的三代API

Spark第一代API:RDD编程

RDD: 五大核心特征:安全

*  - A list of partitions网络

 *  - A function for computing each split框架

 *  - A list of dependencies on other RDDs性能

 *  - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)优化

 *  - Optionally, a list of preferred locations to compute each split on (e.g. block locations forspa

 *    an HDFS file)code

 

Spark第二代API:DataFrame内存

DataFrame: 核心特征:ci

*  - 包含了以Row为单位的每行数据的列的信息,此时DataFrame就是Table;

 *  - Tungsten:新的执行引擎

* - Catalyst:新的语法解析框架

提高计算效率、减小数据读取、底层计算优化;

 

Spark第三代API:DataSet

DataSet的核心价值和好处:Encoder

*  - 编译时的类型安全检查,不须要在执行时期才发现类型不匹配;

* - 性能的极大的提高

* - 内存使用极大下降、减小GC...

* -极大的减小网络数据的传输...

* -极大的极少采用Scala和Java编程的代码的差别性...

 

 

补充:

  1,DataSet会同时能够兼顾Functional和Relational Programming;

  2,DataSet能够统一流计算、SQL、ML等的API编程;

  3,DataSet最最重要的是效率:底层Tungsten的优化、Encoder、数据在内存和磁盘等的存储等等;

 

相关文章
相关标签/搜索