开始学习spark ml了,都知道spark是继hadoop后的大数据利器,很多人都在使用spark的分布式并行来处理大数据。spark中也提供了机器学习的包,就是MLlib。
MLlib中也包含了大部分常用的算法,分类、回归、聚类等等,借助于spark的分布式特性,机器学习在spark将能提高很多的速度。MLlib底层采用数值计算库Breeze和基础线性代数库BLAS。
还是从helloworld开始吧。
要用spark的话,最好还是使用scala语言。在idea的plugin里安装scala,然后可以去下载个scala的特定版本,不同的scala版本支持的spark版本是不同的。这个需要在你定下用哪个spark版本后,再去决定下载哪个版本的scala。
我这里就搞了两个scala版本。2.11和2.12能支持的spark版本大不相同。
具体scala和idea怎么配,网上多的是教程。
配好后,我们来新建一个project,然后选择sbt。
在scala这里选择一个scala版本。
然后创建完毕这个sbt项目。注意,你会经历比较漫长的等待,等待sbt的各种jar包下载完毕,然后你的项目才能创建成功。
sbt你可以理解为一种构建方式,和maven、gradle一样,通过sbt能管理你需要依赖的jar。
创建后的项目长这样,build.sbt里面就是配置项目的基本属性的,用过gradle的应该比较熟悉这种写法。因为我们要学习spark-ml,所以就把spark-core的包和mllib的包都添加依赖进来。
上面那种写法就和下面这种maven的写法起到一样的作用。
添加依赖后,又是漫长的等待,等待下载完依赖的jar包,等OK后,我们就可以使用spark-mllib来开发机器学习程序了。
可以找到该jar,看看里面的包结构。是支持Python的,用Python语言的一样能用spark,即pyspark。
可以看到,算法还是比较全的,常用的都有所涉及。