Spark视频王家林大神 第7课: Spark机器学习内幕剖析

Spark视频王家林大神 第7课: Spark机器学习内幕剖析

本节讲解Spark机器学习内幕,Spark机器学习的本质是什么,Spark机器学习的内部构成到底是什么?基于Spark 2.x版本,怎么学习机器学习?这是所有做机器学习的同学都非常关注的。Spark 2.x版本的发布,标志着以Spark为核心的大数据统一计算时代真正的到来。

Spark机器学习的本质是什么?机器学习是数据+算法(迭代),从老师的角度而言,Spark机器学习就是Spark平台之上的函数库,这是一个非常重要的观点。将Spark机器学习看作普通的函数,很多函数构成函数库,机器学习mllib库函数有自己的一套逻辑,以机器学习的方式,机器学习比较特殊,具有迭代性,或基于迭代进行改进等,函数有自己内部的逻辑。这些函数基于RDD/DataFrame/DataSet,以后将全面转向DataSet。

Spark机器学习数据来源,在Spark的最底层肯定是RDD封装的,这个和Spark具体是什么版本没有任何关系,版本的发展只不过提供了更多的更高层的API而已。例如DataFrame/DataSet,而之所以有DataFrame/DataSet等,一般情况下是为了使用统一的优化引擎。在统一的优化引擎基础上,只要优化引擎,引擎上面的所有的子框架都会受益。抽象程度越高,优化算法和空间就越大。(因此越底层越高效的观点,显然是不完善的。)

Spark机器学习的数据来源主要基于RDD。看一下Spark机器学习的官网http://spark.apache.org/docs/latest/mllib-guide.html),Spark2.2.1版本的官方文档说明MLlib库有基于RDDRDD-basedAPI,也有基于DataFrameDataFrame-basedAPISparkRDD有一个弱点,就是它的每一行的列的数据不是可知的,但是如果变成了DataFrame或者DataSet,使用统一的Catalyst引擎,对列的数据带来更大的优化空间。Spark2.x 版本的DataFrame-based APIprimary级别的,DataFrame-basedAPI spark.ml包里面。

MLlib依旧支持RDD-based APIBUG的修复;MLlib不会再增加RDD-basedAPI新的算法和新的功能;Spark 2.x发行版本中,MllibRDD-based API平滑过渡到DataFrames-based APIDataFrame的底层封装了RDDRDD-based API 可能在Spark 3.0的时候移除掉,将来将完全基于DataFrameDataSet越上层引擎就越统一,Spark SQL、Spark Streaming也越来越倾向于基于DataFrame/DataSet统一的引擎,更高程度的抽象,更多优化的算法,更大优化的空间,性能会更好。

但是机器学习从算法的角度而言,最原始的其实都是基于向量Vector和矩阵Matrix进行计算的,也就是RDD/DataFrame/DataSet等里面的数据从机器学习的角度讲都是Vector和Matrix,而借助于RDD/DataFrame/DataSet天然的分布式并行计算就完成了机器学习的并行化和可扩展性等。

其实机器学习和图计算的思路非常相似,图计算中的数据也是存储在RDD中的,但是Spark的图计算提供了Vertices、Edges、Routing Tables等对象来解析RDD中的数据,从而变成图计算可用的数据。机器学习的方式是Vector和Matrix的方式,底层都基于RDD。

Spark机器学习一方面基于RDD/DataFrame/DataSet,另一方面由Vector和Matrix通过JNI的方式调用已有的数学库的实现,中间由很多算法(函数)。如图所示。

Spark视频王家林大神 第7课: Spark机器学习内幕剖析_第1张图片
                                              

 

如何基于Spark2.x进行Spark机器学习?

1)      巩固学习Spark Core的内容。

2)      VectorMatrix的学习需要花一点精力,矩阵非常复杂,需要学习一年以上的时间。从阅读机器学习源码的角度,用了哪些VectorMatrix的信息。

3)      对于Spark机器学习的每个算法,学习的步骤:

第一步:算法是如何推演过来的,也就是算法的原理(应用场景)。

第二步:Spark如何用代码实现的;

第三步:案例实战;

第四步:基于上面的三步进行深入的思考。

 致谢DT大数据梦工厂和王家林大神!


你可能感兴趣的:(AI,&,Big,Data案例实战课程)