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