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 for

 *    an HDFS file)

 

Spark第二代API:DataFrame

DataFrame: 核心特征:

*  - 包含了以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、数据在内存和磁盘等的存储等等;

 

第一课:理解Spark 的三代API

转载于:https://my.oschina.net/u/1449867/blog/719774

相关文章:

  • 2021-12-22
  • 2021-10-07
  • 2021-12-11
  • 2022-02-14
  • 2022-02-09
  • 2022-01-05
  • 2022-12-23
猜你喜欢
  • 2022-01-12
  • 2021-04-17
  • 2022-12-23
  • 2022-12-23
  • 2021-12-08
  • 2021-05-19
  • 2021-07-02
相关资源
相似解决方案