Mars学习笔记(一)

简介: 对阿里开源的、基于Python的大规模计算框架Mars的学习笔记系列。

一、Mars简介

Mars是阿里开源的、基于Python的大规模计算框架。简单理解,Mars是numpy、pandas、scikit-learn、statsmodels、XGBoost等数据处理、机器学习中常用Python库(只能单机使用)的分布式版本合集。同时,Mars也是基于张量的,与TensorFlow、PyTorch也有很好的交互性。下图是官网中展示的Mars架构概览图。
Mars_Architecture.png

二、安装部署

Mars既支持在单机中安装,也支持在集群中安装。在单机上安装,Mars支持在Windows、MacOS或Linux系统上安装,只需要在联网环境下执行如下命令即可。

pip install pymars

下图是笔者在Windows10系统通过Anaconda3安装的3.8版本Python环境中安装Mars的截图,可以看到成功安装了0.9.0版本的Mars。
Mars_Install_1.png
但是在Jupyter Notebook中导入mars.tensor包时发生报错,报错信息为“ImportError: DLL load failed while importing \_arpack: 找不到指定的程序。”如下两图所示,
Mars_Install_2.png
Mars_Install_3.png
在百度中搜索此报错信息,发现大部分帖子都说是与Anaconda自带的scipy包有关,再次回看上述报错发生的位置,发现也是与scipy包有关,如下图所示,
Mars_Install_4.png
按照一篇帖子中提到的方法,先卸载Anaconda自带的scipy包,再从豆瓣镜像中安装scipy包,即可解决此问题。
如下图所示,Anaconda自带的scipy版本为1.6.2。
Mars_Install_5.png
依次执行如下命令,先卸载Anaconda自带的scipy包,再从豆瓣镜像中安装scipy包,

pip uninstall scipy
pip install scipy -i https://pypi.douban.com/simple

卸载及安装过程如下图所示,
Mars_Install_6_1.png
成功安装1.9.1版本scipy包之后,重启此Jupyter Notebook的内核,再次导入mars.tensor包,即可正常执行Mars。
在集群中安装,Mars既支持在集群中安装部署Mars集群,也支持在现有的Ray、Kubernetes、YARN集群中安装部署,使Mars可以快速灵活的在集群中完成安装部署,并与其它已部署集群框架联合,快速集成进现有业务场景中使用。Mars在各类集群中的安装部署步骤,官方文档中已经作了详细的介绍,这里先不展开,之后在不同类型集群中具体使用时再作介绍,先贴出官方文档中有关安装部分的地址,以供大家参考。
https://docs.pymars.org/zh_CN/latest/installation/index.html

三、在单机上的使用

Mars在使用上充分尊重了Python用户对Numpy、Pandas等包的现有使用习惯,无需更改Numpy、Pandas中的语法,只需更改包的别名,即把Numpy的np改成Mars的mt,把Pandas的pd改成Mars的md,就可以使用原有的代码逻辑,借助Mars框架,对海量数据进行大规模计算了,极大的降低了Mars的学习成本,真正实现了开箱即用的效果。
下图是在使用2亿条二维随机数组计算圆周率的示例中,使用Numpy和Mars的代码对比,可以看到除了更换一下包的别名,其余代码均未更改;而且即便是在单机的环境下运行,在处理相同数据量的情况下,Mars的代码执行时间也远小于Numpy的执行时间,性能上也得到了较大的提升。
Mars_Run_1.png
不过这个需要注意一点,Mars是通过执行session来执行大规模数据计算操作的,所以在执行计算代码之前,最好先使用mars.new_session()语句提前创建一个session,因为创建一个新的session也是会花费一些时间的,如下图所示。
Mars_Run_2.png
在使用Pandas做数据处理中,最方便的就是使用DataFrame格式,Mars中也同样保留了Pandas中DataFrame语法,只需要把Pandas的pd改成Mars的md即可,而且Mars还开发了将Pandas的DataFrame快速转换为Mars的DataFrame的方法,实现了Pandas向Mars完美扩展,代码如下图所示。
Mars_Run_3.png

四、后续

使用Mars在国产中标麒麟操作系统搭建的集群中对海量数据进行分布式计算、机器学习模型和深度学习模型,对接国产达梦数据库的数据计算业务等学习笔记,在整理好之后会陆续更新,敬请期待。

相关文章
|
1月前
|
数据采集 人工智能 分布式计算
🚀 MaxFrame 产品深度体验评测:Python 分布式计算的未来
在数据驱动的时代,大数据分析和AI模型训练对数据预处理的效率要求极高。传统的Pandas工具在小数据集下表现出色,但面对大规模数据时力不从心。阿里云推出的Python分布式计算框架MaxFrame,以“Pandas风格”为核心设计理念,旨在降低分布式计算门槛,同时支持超大规模数据处理。MaxFrame不仅保留了Pandas的操作习惯,还通过底层优化实现了高效的分布式调度、内存管理和容错机制,并深度集成阿里云大数据生态。本文将通过实践评测,全面解析MaxFrame的能力与价值,展示其在大数据和AI场景中的卓越表现。
62 4
🚀 MaxFrame 产品深度体验评测:Python 分布式计算的未来
|
2月前
|
分布式计算 数据处理 MaxCompute
分布式Python计算服务MaxFrame使用心得
大家好,我是V哥。MaxFrame是阿里云自研的分布式计算框架,专为Python开发者设计,支持大规模数据处理和AI模型开发。MaxFrame适用于快速进行数据处理、数据科学和交互式探索,支持按量付费及包年包月两种计费方式。通过两个案例(金融数据清洗和大语言模型预处理),展示了MaxFrame在大规模数据处理中的显著性能提升。安装MaxFrame客户端只需简单几步,轻松开启高效数据处理之旅。欢迎关注威哥爱编程,一起交流技术心得!
|
8月前
|
机器学习/深度学习 数据采集 算法
探索Scikit-learn:机器学习库的入门与进阶
本文介绍了Scikit-learn,一个基于Python的开源机器学习库,它依赖于NumPy、SciPy和Matplotlib。Scikit-learn提供分类、回归、聚类和降维等算法,具有简单易用的API。文章涵盖了Scikit-learn的安装、基础使用,例如线性回归示例,并讨论了其主要功能,如数据预处理、模型评估、分类和回归算法、聚类和降维。此外,还涉及进阶应用,如集成学习(随机森林、AdaBoost等)和模型选择工具(交叉验证、网格搜索),帮助用户优化模型性能。总之,Scikit-learn是数据科学家在处理复杂问题时的强大工具。【6月更文挑战第7天】
125 7
|
9月前
|
机器学习/深度学习 数据采集 算法
探索NumPy与机器学习库的集成之路
【4月更文挑战第17天】本文探讨了NumPy在机器学习中的核心作用,它为各类机器学习库提供基础数据处理和数值计算能力。NumPy的线性代数、优化算法和随机数生成等功能,对实现高效模型训练至关重要。scikit-learn等库广泛依赖NumPy进行数据预处理。未来,尽管面临大数据和复杂模型的性能挑战,NumPy与机器学习库的集成将继续深化,推动技术创新。
|
9月前
|
数据采集 数据可视化 大数据
大数据处理中的NumPy实践指南
【4月更文挑战第17天】NumPy实践指南阐述了其在大数据处理中的核心优势,包括高效内存管理、强大数组操作、优化数学函数及与其他库集成。文章提供实践建议,如数据预处理、内存优化、高效数值计算及数据分析可视化,强调使用视图、选择合适数据类型、利用内置函数及并行计算来提升效率。掌握NumPy将助力数据科学家应对大数据挑战。
|
9月前
|
API 定位技术 开发工具
Mars3D小白专属:开发者快速上手实战指南
Mars3D小白专属:开发者快速上手实战指南
443 0
|
机器学习/深度学习 Apache C++
MXNet简介
轻量级,便携式,灵活的分布式/移动深度学习,具有动态,突变感知的数据流 Dep 调度程序; 适用于Python,R,Julia,Scala,Go,Javascript等,详情请参考:https://mxnet.apache.org GitHub地址:https://github.com/apache/incubator-mxnet Apache MXNet(孵化)是一个深度学习框架,旨在提高效率和灵活性。
2417 0
|
数据采集 数据挖掘 PyTorch
PyTorch学习笔记(八):PyTorch生态简介
计算机视觉领域常见的数据集,包括CIFAR、EMNIST、Fashion-MNIST等
203 0
PyTorch学习笔记(八):PyTorch生态简介
【1100】Mars Numbers (20 分)
【1100】Mars Numbers (20 分) 【1100】Mars Numbers (20 分)
109 0
|
机器学习/深度学习 算法 数据可视化
「直播回顾」Mars应用与最佳实践
本文首先对Mars的概念、功能、优势进行了介绍,随后,对Mars几个典型的应用场景进行介绍,并通过两个Demo展示了在使用Mars后数据科学性能的提升,最后总结了Mars的最佳实践,让使用Mars更高效便捷。
6908 0
「直播回顾」Mars应用与最佳实践

热门文章

最新文章