SparkMllib原理与架构简介

1. SparkMllib介绍

MLLIB是Spark的机器学习库。提供了利用Spark构建大规模和易用性的机器学习平台,组件:
五大特性:

  • 1-ML算法,包含-机器学习分类算法、聚类算法、属性降维算法、协同过滤算法
  • 2-特征化:特征抽取、特征转换、特征选择、特征降维
  • 3-管道Pipeline:将数据处理或特征工程的流程按照管道的方式去串联
  • 4-持久化Persistence:保存模型,保存管道
    • 如何理解保存模型?
      • 原因就是不可能每次都去训练模型,而将已经训练好的模型进行保存,保存在本地或hdfs中,在本地或hdfs中加载已经训练好点模型,直接可以做预测分析
  • 5-工具:包括线性代数、统计学、数据处理科学

在这里插入图片描述
注意:

  • 基于DataFrame是现在主要用的API
  1. Spark ml基于DataFrame的API
  2. Spark mllib基于RDD的API(2.0开始处于维护模式,将被淘汰)

Spark的各种数据结构:

  • SparkCore-----RDD

  • SparkSQL-----DataFrame和DataSet

  • SparkStreaming批处理框架----DFrame(目前Spark官网已经对SparkStreaming停止了更新)

  • StructedStreming实时流处理------DataFrame和Dataset

  • SparkMllib机器学习库

为什么SparkMllib需要从rdd转变成dataframe?

  • 1-Dataframe的Api是比较友好的,基于统一的数据源、sql查询、Tungsten 和catalyst优化的各种优势
  • 2-DataFrame提供多种语言的统一的API接口
  • 3-DataFrame可以整合Pipeline完成管道的操作

2. SparkMllib的架构详解

在这里插入图片描述
从架构图可以看出MLlib主要包含三个部分:

  • 底层基础:包括Spark的运行库、矩阵库和向量库;
  • 算法库:包含广义线性模型、推荐系统、聚类、决策树和评估的算法;
  • 实用程序:包括测试数据的生成、外部数据的读入等功能。

MLlib算法库的核心内容:
在这里插入图片描述
MLlib由一些通用的学习算法和工具组成,包括分类、回归、聚类、协同过滤、降维等,同时还包括底层的优化原语和高层的管道API。

猜你喜欢

转载自blog.csdn.net/m0_49834705/article/details/113195451