学习笔记:从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运行

[root@centos7 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 可以监控执行状态

算法的理解和灵活运用非一日之功,本次学习也只是到此一游,需要用到时再研。

猜你喜欢

转载自blog.csdn.net/oLinBSoft/article/details/84830029