通過前面兩篇對於Spark概念和核心結構的介紹,讓咱們繼續深刻了解Spark:) 本篇講述了Spark Streaming和機器學習,大數據中Spark到底作了啥,快來看看吧!html
傳送門:全方位掌握Apache Spark 2.0七步走(一)算法
全方位掌握Apache Spark 2.0七步走(二)apache
對於Spark相對短暫的歷史來講,Spark streaming 持續發展,簡化了streaming應用的編寫。如今開發人員不只須要一個Streaming編程模型來將元素(element)轉換成streaming,他們還須要一個Streaming模型來支持端到端應用不斷對實時數據進行反應。咱們稱之爲對實時數據反應的continuous application。編程
continuous application有不少方面——和批處理與實時數據相互做用,執行ETL,從批處理和steam得到數據到面板上,或者結合靜態數據集與實時數據作在線機器學習,目前這些都是由分割的應用而不是單一一個應用來處理。網絡
Apache Spark 2.0爲一個新的更高層級的API創建了基礎的步驟,結構化Streaming,構建了連續應用。app
結構化Streaming的核心是你把數據的stream當作無限的表(unbounded table)。一旦從stream過來新的數據,DataFrame新的行(row)將被加到這個無限的表中:機器學習
你能夠在無限的表中像在一個靜態表裏同樣執行計算或者發佈SQL類型的詢問操做。在這種狀況下,開發者能夠像批處理計算同樣表達他們的streaming計算,當數據到達stream,Spark將逐步自動執行。ide
基於DataFrames/Datasets API,使用結構化Streaming API一個很酷的好處是基於詢問一個批數據框(a batch DataFrame)的DataFrame/SQL會相似於一個streaming,在上圖你能夠看到代碼,只有微小的改動。在批處理版本中,咱們讀一個靜態有界日誌文件,而在streaming的版本中,咱們讀的是一個無限的stream。代碼雖然看似簡單,全部複雜的部分都被隱藏了起來,由底層模型和執行引擎來處理,這些在視頻(https://youtu.be/rl8dIzTpxrI) 中會提到。函數
在你深刻了解視頻中的結構化Streaming以後,讀一下《 Structure Streaming Programming Model》(https://spark.apache.org/docs... ),它闡述了數據完整性的全部底層複雜度,容錯,執行一次的語義(exactly-once semantics),基於窗口的聚合,以及無序數據。做爲一個開發人員或者用戶,你無須再擔憂它們。工具
現階段的機器學習,都是關於統計學習技術和算法應用到大數據集來識別模式,根據這些模式作出機率預測。一個簡化的視圖模型是一個數學函數f(x);一個大數據集做爲輸入,函數f(x)反覆應用於數據集生成預測的輸出。
關於機器學習的術語, Matthew Mayo的《Machine Learning Key Terms, Explained》(http://www.kdnuggets.com/2016... )是一個有價值的參考。
Apache Spark的DataFrame-based MLlib(http://spark.apache.org/mllib/ )提供了一組算法的模型和工具,容許數據科學家輕鬆地構建機器學習流程。借用了scikit-learn項目,MLlib pipelines容許開發人員將多種算法結合到一個流水線或工做流。一般運行機器學習算法涉及到一系列的任務,包括預處理、特徵提取、模型擬合,以及驗證階段。在Spark 2.0這個流程能夠持續到再次從新加載,跨語言進行Spark支持。
ApacheSpark MLlib的網絡研討會(http://go.databricks.com/spar... )上,你將會快速地進行機器學習和Spark MLlib的入門,並概述了一些Spark機器學習的用例,也有一些其餘的數據科學工具與MLib的集成,如Python,pandas,SparkMLlib和R。
此外還有一些博客推薦,讓你深刻了解機器學習模型以及機器學習在高級分析中起着相當重要的做用。
2015 Median Home Price by State(http://cdn2.hubspot.net/hubfs... )
Population vs. Median Home Prices: Linear Regression with Single Variable(http://cdn2.hubspot.net/hubfs... )
Saving and Loading Machine Learning Models in Apache Spark 2.0(https://databricks.com/blog/2... )
做者:Jules S. Damji & Sameer Farooqui, Databricks.
文章來源:http://www.kdnuggets.com/2016...