摘要:千呼萬喚,合176個貢獻者之力,Spark 1.3終于發布,其主要更新包括:2014年到2015年Spark大的API改動DataFrame、內置支持Spark Packages、更好的Kafka支持,以及MLlib中的多個算法引入。
近日,Databricks正式發布Spark 1.3版本。在此版本中,除下之前我們報道過的DataFrame API,此次升級還覆蓋Streaming、ML、SQL等多個組件。當下,1.3版本已在 Apache Spark頁面提供下載,下面一起瀏覽 Patrick Wendell在Databricks Blog上對Spark 1.3版本的概括(PS:DataFrame請訪問“ Spark新年福音:一個用于大規模數據科學的API——DataFrame ”一文)。
以下為譯文
Spark SQL脫離Alpha版本
在1.3版本中,Spark SQL正式脫離Alpha版本,提供了更好的SQL標準兼容。同時,Spark SQL數據源API亦實現了與新組件DataFrame的交互,允許用戶直接通過Hive表格、Parquet文件以及一些其他數據源生成DataFrame。用戶可以在同一個數據集上混合使用SQL和data frame操作符。新版本提供了從JDBC讀寫表格的能力,可以更原生地支持Postgres、MySQL及其他RDBMS系統。同時,該API還為JDBC(或者其他方式)連接的數據源生成輸出表格提供寫入支持。
> CREATE TEMPORARY TABLE impressions
USING org.apache.spark.sql.jdbc
OPTIONS (
url "jdbc:postgresql:dbserver",
dbtable "impressions"
)
> SELECT COUNT(*) FROM impressions
內置支持Spark Packages
在2014年底,我們著手為Spark建立一個新的社區項目目錄站點——Spark Packages。當下,Spark Packages已經包含了開發者可以使用的45個社區項目,包括數據源集成、測試工具以及教程。為了更方便Spark用戶使用,在Spark 1.3中,用戶可以直接將已發布包導入Spark shell(或者擁有獨立flag的程序中)。
# Launching Spark shell with a package
./bin/spark-shell --packages databricks/spark-avro:0.2
Spark Packages 還為開發者建立了一個SBT插件來簡化包的發布,并為發布包提供了自動地兼容性檢查。
在Spark Streaming中提供了更低等級的Kafka支持
從過去發布的幾個版本來看,Kafka已經成為Spark Streaming一個非常人氣的輸入源。Spark 1.3引入了一個新的Kakfa streaming source,它利用了Kafka的回放能力,在非預寫日志配置下提供了一個更可靠的交付語義。同時,針對那些需求強一致性的應用程序,它還提供了實現了Exactly-Once Guarantees的原語。在Kafka的支持上,1.3版本還添加了一個Python API以及支持這個API的原語。
MLlib中的新算法
Spark 1.3還提供了大量的新算法。其中,Latent Dirichlet Allocation(LDA)成為了個出現在MLlib中的主題建模算法。在這之前,Spark的邏輯回歸已經通過多元邏輯回歸(multinomial logistic regression )支持多類分類(multiclass classification)。而在這個版本中,聚類再次被提升,Gaussian Mixture Models和 Power Iteration Clustering被引入。并通過FP-growth擴展了頻繁項集挖掘(FIM,Frequent Itemsets Mining)。后,MLlib還為Distributed Linear Algebra引入了有效的塊矩陣抽象。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。