Spark机器学习 Day1 机器学习概述

Spark机器学习 Day1

机器学习概述

今天主要讨论个问题:Spark机器学习的本质是什么,其内部构成到底是什么。
简单来说,机器学习是数据+算法。

数据

在Spark中做机器学习,肯定有数据来源,在Spark的最底层肯定是RDD封装,这个和Spark具体是什么版本没有任何关系,版本发展只不过是提供了更多高层的API而已,例如DataFrame、Dataset等,而之所以有DataFrame、Dataset,一般情况下是为了使用统一的优化引擎(抽象程度越高,优化算法和空间越大)。

RDD有一个弱点,是每一行列的数据不是可知的,使用Catalyst可以看到列的数据,有更大的优化空间。在2.0中,DataFrame作为了mlib的主要API,基于RDD的API有可能在3.0被移除掉。

算法

Spark的机器学习就是Spark平台之上的函数库。函数肯定有一套内部的逻辑。

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

其实这和图计算的思路非常相似,图计算中数据也是存储在RDD中的,但是Spark的图计算提供了Vertices、Edges、Routing Table等对象来解析RDD中的数据,从而变成图计算可用的数据。

小结

整个过程可以用下面这个图来表示。

Spark机器学习 Day1 机器学习概述

欲知后事如何,且听下回分解!

DT大数据每天晚上20:00YY频道现场授课频道68917580

上一篇:Linux--内核Uevent事件机制 与 Input子系统【转】


下一篇:maven的pom文件中指定编译的版本