1. 程式人生 > >學習筆記:從0開始學習大資料-20. 機器學習spark ml演算法庫應用練習

學習筆記:從0開始學習大資料-20. 機器學習spark ml演算法庫應用練習

作為大資料初學者,機器學習演算法的運用,只是hello world知道個123,以後專案需要再深入

Mahout,spark MLlib,spark ML三個演算法庫,根據網上了解比較,採用spark ml演算法庫作為學習物件。

本次學習只是除錯能執行網上的例子

程式碼案例網址:

https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice6/  基於 Spark ML 的文字分類

1.環境,已經安裝hadoop,spark原來是1.6版本的,執行總是出問題,為了一致,下載的是2.4版本

因為hadoop是2.6版本的,就選了這個組合,下載的檔案是 spark-2.4.0-bin-hadoop2.6.tgz

spark的單機安裝配置執行,見我前面的文章,不再羅列。

2. 在eclipse中建立maven scala專案下的scala object,類名SMSClassifier

程式碼複製上面網址,無需修改

3. pom.xml中加入spark ml庫,注意版本

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_2.11</artifactId>
            <version>2.4.0</version>
        </dependency>

為什麼是這個版本,這個開始費了點時間,執行作業總是提示沒有某個方法,後來找到問題解決辦法,就是先看執行環境的jar版本,然後設定eclipse中的編譯版本,兩者一致,就能順利執行。

4. eclipse 中編譯匯出類的jar檔案,提交spark執行

[[email protected] bin]# ./spark-submit --class com.linbin.scala.SMSClassifier  --master spark://centos7:7077  /home/linbin/workspace/SMSClassifier.jar  hdfs://centos7:8020/user/linbin/spark/SMSSpamCollection
因為在本地執行 可以不指定--master spark://<host>:<port> 引數

執行結果:

可以根據樣本訓練後,絕大部分的垃圾簡訊都能正確識別,上面紅色部分是識別結果與預期不符的,只是少數。

通過 http://centos7:8080 可以監控執行狀態

演算法的理解和靈活運用非一日之功,本次學習也只是到此一遊,需要用到時再研。