1. 程式人生 > >Spark2.x 與 Spark1.x 關係

Spark2.x 與 Spark1.x 關係

Spark2.x 引入了很多優秀特性,效能上有較大提升,API 更易用。在“程式設計統一”方面非常驚豔,實現了離線計算和流計算 API 的統一,實現了 Spark sql 和 Hive Sql 操作 API 的統一。Spark 2.x 基本上是基於 Spark 1.x 進行了更多的功能和模組的擴充套件,及效能的提升。

Spark2.x 新特性

1). Spark Core/SQL

在記憶體和CPU使用方面進一步優化Spark引擎效能(鎢絲計劃)。支援SQL 2003標準 ,支援子查詢,對常用的SQL操作和DataFrame,效能有2-10倍的提升。

2). sparksession

Spark2.0 中引入了 SparkSession 的概念,它為使用者提供了一個統一的切入點來使用 Spark 的各項功能,統一了舊的SQLContext與HiveContext。使用者不但可以使用 DataFrame 和Dataset 的各種 API,學習 Spark2 的難度也會大大降低。

3). 統一 DataFrames 和 Datasets 的 API。

它們都是提供給使用者使用,包括各類操作介面的 API,1.3 版本引入 DataFrame,1.6版本引入Dataset,在 spark 2.0 中,把 dataframes 當作是一種特殊的 datasets,dataframes = datasets[row],把兩者統一為datasets。

4). Structured Streaming

Spark Streaming基於Spark SQL(DataFrame / Dataset )構建了high-level API,使得Spark Streaming充分受益Spark SQL的易用性和效能提升。

5). 其它特性

mllib 裡的計算用 DataFrame-based API 代替以前的 RDD 計算邏輯,提供更多的 R 語言演算法,預設使用 Scala 2.11 編譯與執行。

參考資料:

https://www.shiyanlou.com/courses/809/labs/2835/document