大数据课程K12——Spark的MLlib概述
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州
▲ 本章节目的
⚪ 了解Spark的MLlib概念;
⚪ 掌握Spark的MLlib基本数据模型;
⚪ 掌握Spark的MLlib统计量基础;
一、Spark MLlib介绍
1. 概述
MLlib是Apache Spark的可迭代机器学习库。
2. 易于使用
适用于Java、Scala、Python和R语言。
MLlib适用于Spark的API,并与Python中的NumPy(从Spark 0.9开始)和R库(从Spark 1.5开始)互操作。 您可以使用任何Hadoop数据源(例如HDFS,HBase或本地文件),从而轻松插入Hadoop工作流程。
案例:
// 通过Python调用MLib
data = spark.read.format("libsvm").load("hdfs://...")
model = KMeans(k=10).fit(data)
3. 执行高效
高质量的算法,比 MapReduce 快100倍。
Spark擅长迭代计算,使MLlib能够快速运行。 同时,我们关注算法性能:MLlib包含利用迭代的高质量算法,并且可以产生比MapReduce上有时使用的一次通过近似更好的结果。Hadoop 和 Spark的数据模型,如下图所示。

4. 易于部署
Spark运行在Hadoop,Apache Mesos,Kubernetes,standalone或云端,针对不同的数据源。
您可以使用其独立群集模式,EC2,Hadoop YARN,Mesos或Kubernetes运行Spark。 访问HDFS,Apache Cassandra,Apache HBase,Apache Hive和数百个其他数据源中的数据。
5. 算法
MLlib包含许多算法和实用程序。
ML算法包括:
1. 分类:逻辑回归,朴素贝叶斯,......。
2. 回归:广义线性回归,生存回归,......。
3. 决策树,随机森林和梯度提升树。
4. 建议:交替最小二乘法(ALS)。
5. 聚类:K均值,高斯混合(GMM),......。
6. 主题建模:潜在Dirichlet分配(LDA)。
7. 频繁项目集,关联规则和顺序模式挖掘。
ML工作流程工具包括:
1. 特征转换:标准化,规范化,散列,......。
2. ML Pipeline construction。
3. 模型评估和超级参数调整。
4. ML持久性:保存和加载模型和Pipelines。
其他工具包括:
分布式线性代数:SVD,PCA,......。
统计:汇总统计,假设检验,......。
6. 总结
MLlib是一个构建在Spark上的、专门针对大数据处理的并发式高速机器学习库,其特点是采用较为先进的迭代式、内存存储的分析计算,使得数据的计算处理速度大大高于普通的数据处理引擎。
MLlib机器学习库还在不停地更新中,Apache的相关研究人员仍在不停地为其中添加更多的机器学习算法。目前MLlib中已经有通用的学习算法和工具类,包括统计、分类、回归、聚类、降维等。
MLlib采用Scala语言编写,Scala语言是运行在JVM上的一种函数式编程语言,特点就是可移植性强,“一次编写,到处运行”是其最重要的特点。借助于RDD数据统一输入格式,让用户可以在不同的IDE上编写数据处理程序,通过本地化测试后可以在略微修改运行参数后直接在集群上运行。对结果的获取更为可视化和直观,不会因为运行系统底层的不同而造成结果的差异与改变。
二、MLlib基本数据模型
1. 概述
RDD是MLlib专用的数据格式,它参考了Scala函数式编程思想,并大胆引入统计分析概念,将存储数据转化成向量和矩阵的形式进行存储和计算,这样将数据定量化表示,能更准确地整理和分析结果。
多种数据类型
MLlib先天就支持较多的数据格式,从最基本的Spark数据集RDD到部署在集群中的向量和矩阵。同样,MLlib还支持部署在本地计算机中的本地化格式。
下表给出了MLlib支持的数据类型。
| 类型名称 | 释义 |
| Local vector | 本地向量集。主要向Spark提供一组可进行操作的数据集合 |
| Labeled point | 向量标签。让用户能够分类不同的数据集合 |
| Local matrix | 本地矩阵。将数据结合以矩阵形式存储在本地计算机中 |
| Distributed matrix | 分布式矩阵。将矩阵集合以矩阵形式存储在分布式计算机中 |
以上就是MLlib支持的数据类型,其中分布式矩阵根据不同的作用和应用场景,又分为四种不同的类型。
2. 本地向量
MLlib使用的本地化存储类型是向量,这里的向量主要由两类构成:稀疏型数据集(spares)和密集型数据集(dense)。例如一个向量数据(9,5,2,7),按密集型数据格式可以被设定成(9,5,2,7)进行存储,数据集被作为一个集合的形式整体存储。而对于稀疏型数据,可以按向量的大小存储为(4, Array(0,1,2,3), Array(9,5,2,7))。
案例一:
import org.apache.spark.{SparkConf,SparkContext}
def main(args:Array[String]):Unit={
//--建立密集型向量
//--dense可以将其理解为MLlib专用的一种集合形式,它与Array类似
val vd=Vectors.dense(2,0,6)//
println(vd)
//①参:size。spare方法是将给定的数据Array数据(9,5,2,7)分解成指定的size个部分进行处理,本例中是7个
//③参:输入数据。本例中是Array(9,5,2,7)
//②参:输入数据对应的下标,要求递增,并且最大值要小于等于size
val vs=Vectors.sparse(7,Array(0,1,3,6),Array(9,5,2,7))
println(vs(6))
}
}
相关文章:
大数据课程K12——Spark的MLlib概述
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的MLlib概念; ⚪ 掌握Spark的MLlib基本数据模型; ⚪ 掌握Spark的MLlib统计量基础; 一、Spark MLlib介绍 1. 概述 MLlib是Apache Spark的可迭代机器学习库。 2. 易于使用 …...
流程制造智能工厂总体架构及建设路线规划方案PPT
本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除,更多浏览公众号:智慧方案文库 数字孪生智能制造(智改数转)数字化架构设计及应用..水泥智能工厂解决方案.pptx智慧制造规划设计解决方案.pptx智能工厂落…...
网络有源号角(50W-100W)社区小区广播 工地语音播报,隧道广播,钢铁广播广播系统
网络有源号角(50W-100W)社区小区广播 工地语音播报,隧道广播,钢铁广播广播系统 SV-7042T 50W网络有源号角 SV-7042T是深圳锐科达电子有限公司的一款壁挂式网络有源号角,具有10/100M以太网接口,可将网络音…...
【Kali Linux高级渗透测试】深入剖析Kali Linux:高级渗透测试技术与实践
📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏C语言初阶、C…...
DHCP中继实验
文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. 配置IP地址2.配置R1为DHCP服务器,能够跨网段为192.168.2.0/24网段自动分配IP地址3. 在PC3上Ping 192.168.1.1,确认可以Ping通 摘要: 本实验旨在通过配置DHCP中继实现跨网…...
C++进阶之多态
多态 多态的概念多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写4.虚函数重写的两个例外5.C11 override 和 final6.重载、覆盖(重写)、隐藏(重定义)的对比 抽象类1.概念2.接口继承和实现继承 多态的原理1.虚函数表2.多态的原理3.动态绑定与静态绑定 单继承和多继承关系…...
QtCreator中三种不同编译版本 debug、release、profile 的区别
debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值。会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉。 release发布模式,编译后的可执…...
golang中map赋值
众所周知,golang中map是一个指针,既然是一个指针,那么参数传递、赋值应该都是指针传递,而下面的例子也印证了我的想法 package mainimport "fmt"func test_map2(m map[string]string) {fmt.Printf("inner: %v, %p…...
myspl使用指南
mysql数据库 使用命令行工具连接数据库 mysql -h -u 用户名 -p -u表示后面是用户名-p表示后面是密码-h表示后面是主机名,登录当前设备可省略。 如我们要登录本机用户名为root,密码为123456的账户: mysql -u root -p按回车,然后…...
【深度学习_TensorFlow】过拟合
写在前面 过拟合与欠拟合 欠拟合: 是指在模型学习能力较弱,而数据复杂度较高的情况下,模型无法学习到数据集中的“一般规律”,因而导致泛化能力弱。此时,算法在训练集上表现一般,但在测试集上表现较差&…...
uniapp授权小程序隐私弹窗效果demo(整理)
<template> <view class"dealBox"><view class"txtBox padding10"><!-- 查看协议 -->在您使用施工现场五星计划小程序之前,请仔细阅读<text class"goToPrivacy" click"handleOpenPrivacyContract&qu…...
c++学习之string实现
字符串 - C引用 (cplusplus.com)这里给出标准官方的string实现,可以看到设计还是较为复杂的,有成员函数,迭代器,修饰符,容量,元素访问,字符串操作等,将字符尽可能的需求都设计出来&a…...
kubevirt虚机创建svc通过NodePort的方式暴露端口
背景 存在kubevit存在的三个虚机: ubuntu-4tlg7 7d22h Running True ubuntu-7kgrk 7d22h Running True ubuntu-94kg2 7d22h Running True 网络没有做透传,pod也不是underlay网络想要通过NodePort方式暴露虚机22端口进行远程登录。 …...
Elasticsearch终端命令行用法大全
API作用使用场景curl localhost:9200/_cluster/health?pretty查看ES健康状态curl localhost:9200/_cluster/settings?pretty查看ES集群的设置其中persistent为永久设置,重启仍然有效;trainsient为临时设置,重启失效curl localhost:9200/_ca…...
nacos版本升级注意事项
背景:nacos版本升级,1.0.1升级到2.1.2,nacos主要用作配置中心 1 从官网下载新版本nacos压缩包 2 由于1.x到2.x版本数据结构发生变化,无法沿用旧的数据库,所以新建一个数据库实例,来保存具体的nacos配置信息…...
JavaScript作用域与作用域链
JavaScript作用域与作用域链 JavaScript的作用域和作用域链是理解这门语言的关键概念之一。作用域指的是变量和函数在程序中可被访问的范围。作用域链是由函数的嵌套关系决定的变量对象的链式结构。 静态作用域与动态作用域 JavaScript使用静态作用域,也称为词法…...
MQTT异常掉线原因
一、业务场景 我们在使用MQTT协议的时候,有些伙伴可能会遇到MQTT客户端频繁掉线、上线问题 二、原因分析及异常处理 1.原因:使用相同的clientID 方案:全局使用的clientID保证唯一性,可以采用UUID等方式 2.原因: 当前用户没有Top…...
重新理解百度智能云:写在大模型开放后的24小时
在这些回答背后共同折射出的一个现实是——大模型不再是一个单选题,而更是一个综合题。在这个新的时代帆船上,产品、服务、安全、开放等全部都需要成为必需品,甚至是从企业的落地层面来看,这些更是刚需品。 作者| 皮爷 出品|产…...
Stable Diffusion 提示词技巧
文章目录 背景介绍如何写好提示词提示词的语法正向提示词负向提示词 随着AI技术的不断发展,越来越多的新算法涌现出来,例如Stable Diffusion、Midjourney、Dall-E等。相较于传统算法如GAN和VAE,这些新算法在生成高分辨率、高质量的图片方面表…...
VS2019编译curl库
下载: curl-7.61.0.tar.gz 编译: 解压到一个文件下,然后右键以管理员权限运行buildconf.bat 编译x64的库使用的是x64 Native Tools Command Prompt for VS 2019 本机工具命令提示,如果想编译x86的库,可以选择x86 Nat…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
