北(běi)京軟件(jiàn)開(kāi)發公司Apache Spark 2.0技(jì)術(shù)預覽版,Apache S¶£σpark第一(yī)版發布時(shí)隔兩年(₹∞★nián)後,Databricks公布了(le)基于上(shàng&ε )遊分(fēn)支2.0.0-previe₹₩☆w的(de)Apache Spark 2.0技 ♥(jì)術(shù)預覽版。該預覽版在穩定性和(hé↓↓)API方面均不(bù)适合用(yòng)于生(₹♠✘§shēng)産環境,主要(yào)是(shì)為(wèi)了(le)在$∏π©正式上(shàng)市(shì)前收集來(lái)及社區(qū)的(de)反®<♥饋。
此次發布的(de)新版主要(yào)針對£☆(duì)社區(qū)反饋進一(yī)步完善了(le)各種功能(né↑'ng),根據Spark的(de)開(kāi)發™ >α計(jì)劃,主要(yào)改進分(fēn)為(wèi)兩方§∏≤γ面。
SQL是(shì)基于Apache Spark的(de)應用(yòng±ε)程序較常用(yòng)的(de)接口之一(yī)。Spark 2.0可(k$&δě)以支持全部的(de)99個(gè)TPC-DS查詢,這(zhè)些(xiē♦γ)查詢大(dà)部分(fēn)都(dōu)基于SQL:2003規範。這(zhè)些(xiē)改進有(yǒu)助于在對(duì)σ♥應用(yòng)程序堆棧進行(xíng)較少(shǎo)量重寫的(de)情®≥®∞況下(xià)将現(xiàn)有(yǒu)數≥≈(shù)據負載移植至Spark後端。
第二方面改進主要(yào)是(shì)編程API,同時(shí)在這(zh™♠è)個(gè)新版中也(yě)更重視(shì)∑€"₽機(jī)器(qì)學習(xí)。spark.mllib程序包已經被全新的 β>(de)spark.ml程序包所取代,後者更加側重于基于管線$±λ的(de)API,這(zhè)項技(jì)術(shù)源自(zì)DataFδ↓rames。機(jī)器(qì)學習(xí)管線和(héδ★≠)模型現(xiàn)已能(néng)夠持久保存,Sparkγλβ£所支持的(de)所有(yǒu)語言均支持這(zhè)≈↔一(yī)特性。同時(shí)R已經可(kě)以支持K-Means、Gener∞♦ε☆alized Linear Models(GLM≤←±)、樸素貝葉斯和(hé)Survival Regσ¶ression。
借助新增的(de)Datasets類,DataFrames和(hé)Dat≈£asets已實現(xiàn)了(le)統一(¶♠₽yī),可(kě)支持Scala和(hé)Ja≤&↔va編程語言,同時(shí)也(yě)可(kěπ↑×>)充當結構流(Structured streaming♦γ)的(de)抽象。不(bù)支持編譯時(shí )類型安全(Compile time ty≤★pe safety)的(de)語言暫時(shí)還(hái)無法₹§↑做(zuò)到(dào)這(zhè)一(yī₩∏→)點,此時(shí)隻能(néng)使用(yòng)DataF×β£rames作(zuò)為(wèi)主要(yào)抽象。SQLContextβ₽∑和(hé)HiveContext已被統一(yī)的(d♦φe)SparkSession所取代。新增的(d•&¥Ωe)Accumulator API具有(yǒu)比基本類型更簡單的(de)↓∞類型層級,可(kě)支持對(duì)基本類型進行(xíng)專門(mén)<'化(huà)(Specialization)。老(lǎo)的(de"×)API已被棄用(yòng),但(dàn)為(wèi)了(le)實現₩×(xiàn)向後兼容性依然包含在新版中。
新發布的(de)結構化(huà)流API主要(yà¥σ♠∞o)可(kě)用(yòng)于在不(bù)增加複雜(zá)性∞♣Ω的(de)前提下(xià)管理(lǐ)流數(shù)據集,借此程序員(yuán"γγ)和(hé)現(xiàn)有(yǒu)機(jī)器(q✘φβ∑ì)學習(xí)算(suàn)法将可(kě)以處理(lε≈$ǐ)批量加載的(de)數(shù)據集。在第二代Tungsten引π擎的(de)幫助下(xià),性能(néng)也(yě)有♥♥≥(yǒu)所增強,執行(xíng)速度較高(gāo)可&₹γ(kě)提升10倍。
該技(jì)術(shù)預覽版已經發布至Da≤&β&taBricks。