Spark機器學習 Day1 機器學習概述

機器學習概述

今天主要討論個問題:Spark機器學習的本質是什麼,其內部構成究竟是什麼。
簡單來講,機器學習是數據+算法。算法

數據

在Spark中作機器學習,確定有數據來源,在Spark的最底層確定是RDD封裝,這個和Spark具體是什麼版本沒有任何關係,版本發展只不過是提供了更多高層的API而已,例如DataFrame、Dataset等,而之因此有DataFrame、Dataset,通常狀況下是爲了使用統一的優化引擎(抽象程度越高,優化算法和空間越大)。機器學習

RDD有一個弱點,是每一行列的數據不是可知的,使用Catalyst能夠看到列的數據,有更大的優化空間。在2.0中,DataFrame做爲了mlib的主要API,基於RDD的API有可能在3.0被移除掉。分佈式

算法

Spark的機器學習就是Spark平臺之上的函數庫。函數確定有一套內部的邏輯。函數

機器學習從算法角度而言,最原始的其實都是基於Vector和Matrix來進行計算的,也就是說RDD/DataFrame/Dataset等裏面的數據從機器學習角度講都是Vector和Matrix,而藉助於RDD/DataFrame/Dataset自然分佈式並行計算完成了機器學習的並行化和可擴展性等。學習

其實這和圖計算的思路很是類似,圖計算中數據也是存儲在RDD中的,可是Spark的圖計算提供了Vertices、Edges、Routing Table等對象來解析RDD中的數據,從而變成圖計算可用的數據。大數據

小結

整個過程能夠用下面這個圖來表示。優化

Snip20160728_8

欲知後事如何,且聽下回分解!

DT大數據天天晚上20:00YY頻道現場授課頻道68917580對象

相關文章
相關標籤/搜索