北京軟件開發公司Apache Spark 2.0技術預覽版,Apache Spark第一版發布時隔兩年后,Databricks公布了基于上游分支2.0.0-preview的Apache Spark 2.0技術預覽版。該預覽版在穩定性和API方面均不適合用于生產環境,主要是為了在正式上市前收集來及社區的反饋。
此次發布的新版主要針對社區反饋進一步完善了各種功能,根據Spark的開發計劃,主要改進分為兩方面。
SQL是基于Apache Spark的應用程序較常用的接口之一。Spark 2.0可以支持全部的99個TPC-DS查詢,這些查詢大部分都基于SQL:2003規范。這些改進有助于在對應用程序堆棧進行較少量重寫的情況下將現有數據負載移植至Spark后端。
第二方面改進主要是編程API,同時在這個新版中也更重視機器學習。spark.mllib程序包已經被全新的spark.ml程序包所取代,后者更加側重于基于管線的API,這項技術源自DataFrames。機器學習管線和模型現已能夠持久保存,Spark所支持的所有語言均支持這一特性。同時R已經可以支持K-Means、Generalized Linear Models(GLM)、樸素貝葉斯和Survival Regression。
借助新增的Datasets類,DataFrames和Datasets已實現了統一,可支持Scala和Java編程語言,同時也可充當結構流(Structured streaming)的抽象。不支持編譯時類型安全(Compile time type safety)的語言暫時還無法做到這一點,此時只能使用DataFrames作為主要抽象。SQLContext和HiveContext已被統一的SparkSession所取代。新增的Accumulator API具有比基本類型更簡單的類型層級,可支持對基本類型進行專門化(Specialization)。老的API已被棄用,但為了實現向后兼容性依然包含在新版中。
新發布的結構化流API主要可用于在不增加復雜性的前提下管理流數據集,借此程序員和現有機器學習算法將可以處理批量加載的數據集。在第二代Tungsten引擎的幫助下,性能也有所增強,執行速度較高可提升10倍。
該技術預覽版已經發布至DataBricks。