Apache Spark 1.3發布,新增Data Frames API,改進Spark SQL和MLlib
原文 http://www.infoq.com/cn/news/2015/03/apache-spark-1.3-released
Apache Spark項目剛剛 發布了1.3版本 。該版本主要的功能改進包括新增DataFrames API,更加成熟的Spark SQL,機器學習庫MLlib中新增的大量方法以及更好地整合Spark Streaming與Apache Kafka。
這一版本主要的功能改進之一就是新增的 DataFrames API 。效仿同名的 R語言數據結構 ,其目標是為列表數據處理提供更好的支持。每個DataFrame包含一個表,該表中包含帶有類型和名稱的列,此外,DataFrame還提供與SQL中的查詢類似的過濾、分組或計算聚合等操作。
DataFrames與分布式SQL查詢引擎Spark SQL結合緊密。可以通過SQL查詢結果集或RDD構建DataFrames,也可以從 Parquet格式 的文件中加載DataFrames。目前來說,Spark中主流的分布式數據集合類型是RDD(彈性分布式數據集),不過DataFrames旨在為結構化數據提供更好的支持。
作為Spark一部分的機器學習庫Spark MLlib新增了大量的學習算法,如用于識別文檔中的主題并根據主題對文檔進行聚類的概率統計方法——隱含狄利克雷分布( Latent Dirichlet Allocation ),或用于多級預測任務的多項式邏輯斯蒂回歸( multinomial logistic regression )。此外實現了對分布式線性代數的初步支持,其中矩陣塊是以分布式的方式存儲的。這一功能對更多復雜數據分析的任務來說非常有意義,例如矩陣因子分解由于矩陣過大而經常會出現無法裝載到主內存中的情況。
在這些算法之上,Spark還為數據分析增加了更高級的功能,如導入導出已掌握的預測模型以及在1.2版本中引入的以高級方式指定數據傳輸管道的 Pipeline API 。在數據科學中,這種管道經常用于從原始數據中提取相關特征。
此外,Spark已經直接與 Apache Kafka 集成,可以接入實時事件數據。
Apache Spark最初于2009年源自UC Berkeley AMPLab。Spark可以獨立運行,也可以運行在已經安裝的Hadoop之上,并提供比原始Hadoop中的MapReduce處理模型更大的操作集合。Spark會盡可能的將數據保留在內存中,與更加依賴磁盤的MapReduce相比,在性能上有進一步的提升。另外,通過將數據采集到緩存中然后定期小批量地進行處理,Spark可以接近實時地完成事件數據處理。與Spark類似的項目還有包含類似功能集合及查詢優化和持續流數據處理引擎的 Apache Flink ,以及運行于MapReduce處理模型之上,并提供類似的高級操作集合的 Cascading 和 Scalding 。
查看英文原文: Apache Spark 1.3 Released, Data Frames, Spark SQL, and MLlib Improvements