第一課:理解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、數據在內存和磁盤等的存儲等等;

 

相關文章
相關標籤/搜索