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、數據在內存和磁盤等的存儲等等;