[SPARK] MLlib 的使用 (1)

Spark 相較其他平台有一個好處就是對Machine Learning的支援,
相同的, 為了利用此支援性, 我們也找其中一個範例程式來編譯使用,
在這一系列文章中, 我們將以Linear Regression為範例, 其參考的網頁為:
https://spark.apache.org/docs/2.2.0/ml-classification-regression.html#linear-regression
而整份參考的程式位址如下:
https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/ml/LinearRegressionWithElasticNetExample.scala

在閱讀程式以前, 我們先建立Spark MLlib的編譯環境,
大致上, 流程和之前這一篇文章一樣,
建立專案 => 複製程式碼 => build => 執行

需要注意的地方只有兩個,
第一, 在之前編譯環境中, 並沒有加入MLlib的相依檔案,
直接編譯會出現以下錯誤:

因此, 我們需要修改sbt的環境, 加入MLlib的資訊, 如下圖:

值得一提的是, 由於這不是第一次編譯Spark程式,
所以並沒有像之前耗時1小時的編譯過程,
而是數十秒的時間就完成的程式的編譯,

第二, 必須修改進行Linear Regression的資料位置,
原本在程式中, 預設的位置為: data/mllib/sample_linear_regression_data.txt
可以去安裝spark的路徑下把檔案複製到目錄下,
或是直接修改讀取目錄到spark安裝路徑,
例如: /usr/lib/spark/data/mllib/sample_linear_regression_data.txt

之後, 就可以進行編譯並執行Linear Regression的程式了,
在之後的文章中, 將會去解讀此程式,
並嘗試了解其資料格式, 平行化處理, 以及數學運算的函式執行,
完成此程式理解後, 應該會自己寫一個程式來玩玩看MLlib的效能吧...

留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列