简要介绍:如何使用云上的分布式Python来加速数据科学。如果您熟悉Numpy,Pandas或Sklearn等数据科学技术堆栈,同时,无法处理平台的计算性能,无法处理本文中介绍的MaxCompute使您可以使用并行和分布式技术来加速数据科学。换句话说,只要使用Numpy,Pandas和Scikit-Learn,就可以使用MaxCompute分发Python分布式Python。
为什么要python
Python已成长为数据分析和一般编程中的主要语言。
根据技术问题和答案网站堆栈溢出的统计数据,Python,C#,JavaScript,Java,PHP,C ++,SQL,R,2009年至2021年的统计数据在下图中显示Python的范围是显示上升趋势,尤其是在数据分析和数据科学领域,这几乎是顶级的编程语言。这是Python Ecology的发展趋势。当然,在数据分析数据领域中科学机器学习,不仅仅是编程语言的一个因素。
Insights.stackoverflow.com/trends的统计信息
数据科学技术堆栈
数据科学领域的编程语言只是一个方面。语言不仅包含Python,而且数据分析师使用SQL或传统的分析语言R或功能编程语言Scala。第二个方面需要数据分析对应的库,例如Numpy,Pandas等或其中的视觉库。Python运行簇还将具有一些操作和维护技术堆栈,例如在Docker或Kubernetes上运行。如果您想进行数据分析数据科学,则需要在早期阶段清洁数据。有一些ETL过程。一些清洁不仅是完成一两个步骤。需要工作流程的过程来完成整体ETL过程。它涉及最受欢迎的组件,例如Spark,整个工作电流是气流,最终结果将得到呈现。它需要存储。通常,PostgreSQL数据库或内存数据库REDIS已连接到外部以进行最终结果显示。有一些用于机器学习,Tensorflow,Pytorch等的组件或平台。最终平台,例如烧瓶。它包括一个商业智能软件,例如BI Tool Tableau,Power BI或SaaS,SaaS经常在数据科学领域中使用。
这是整个数据科学技术堆栈的相对完整的观点。我们从编程语言中删除,发现要实现大型数据的数据科学需要考虑的各个方面。
MaxCompute分布式Python技术-Pyodps
MaxCompute是SaaS模式下的云数据仓库。基于MaxCompute,它具有与Python兼容的能力。
Pyodps是SDK的MaxCompute版本的Python版本,该版本在MaxCompute对象上提供了基本操作。并提供数据框架框架(两个维表结构,可以添加到删除和修改操作中),可以在MaxCompute上执行数据分析。
PYODPS提交的SQL和DataFrame操作将转换为MaxCompute SQL分布式操作;如果第三部分库可以以UDF+SQL的形式运行,则它也可以分布式运行。
如果需要python将分配分配到分布式的子任务中,例如大尺度向量将计算本机python而没有分布式功能。目前,建议使用MaxCompute Mars.it是一个框架,可以将其分为子来运行Python任务。
圆顶练习
请单击视频查看
在自定义功能中使用三方软件包
如果您不仅在运行Python,还需要使用一些Python第三组软件包,也支持此MaxCompute。
该过程如下:
步骤1
确定使用的第三方包裹
Sklearn,Scipy
第2步
查找相应报纸的所有依赖性
Sklearn,Scipy,Pytz,Pandas,Six,Python-Dateutil
步骤3
下载相应的三方软件包(PYPI)
python-dateutil-2.6.0.zip,
pytz -2017.2.zip,六1.11.0.tar.gz,
PANDAS-0.20.2-CP27-CP27M-MANYLINUX1_X86_64.ZIP,
Scipy-0.19.0-CP27-CP27M-Manylinux1_x86_64.zip,
Scikit_learn-0.18.1-CP27-CP27M-Manylinux1_x86_64.zip
步骤4
将资源上传到MaxCompute的资源对象。
这样,我们去创建一个函数,然后引用自定义函数以使用第三方软件包。
自定义功能代码
MaxCompute分布式Python技术-MARS
项目名称火星
最早的矩阵和降落在火星中
为什么火星
技巧科学计算:计算机梳理数据:Excel->数据库(MySQL) - > Hadoop,Spark,MaxCompute数据发生了很大变化,计算模型没有更改,二维表,投影,切片,设置,筛选和分类,基于基于的货币代数,收集理论;科学计算基础架构不是两个维度的表:例如,图2维度,每个像素点不是数字(RGB+α透明通道)
案件
客户A MaxCompute的现有数据需要乘以这十亿个数据TB级别的数据;现有的MapReduce模式的性能较低;使用火星可以有效地解决;目前,它是唯一的大型科学计算引擎
加速数据科学的新方法
加速数据科学的方法如下图所示。
基于DASK或MAXCOMPUTE MARS,它实际上是一种比例扩大和扩展的兼容方法。下图的左下方代表了一种用于数据科学的Python库的方法。也就是说,在线垂直扩散,增加了硬件功能。例如,它可用于多核。目前,每个计算机或服务器上都有一个以上的核心在右下方,也有一些分布式Python的框架。例如,雷是蚂蚁的框架服务。从本质上讲,火星可以在射线上运行,相当于Python生态学的日程安排,kubernetes.dask也在进行分布式Python,包括Mars.of Mars.of当然,最好的模式是两个组合:扩展和扩展。它可以分配,并且可以在单个节点上使用硬件功能。只能在大尺度群集上的GPU群集中配置MARS。
分布式Python的设计逻辑
本质上,设计思想是分发数据科学库。例如,Python可以将数据框架分开,包括Numpy,Scikit-Learn。
将大型作业拆卸成分布式计算的小作作业。该框架本身被拆卸为操作。首先,客户提交工作。火星框架分解了工作,制作一个DAG图,最后收集计算结果。
火星场景1 CPU和GPU混合计算
1.在安全和金融领域,传统的大数据平台具有较长的挖掘周期,严格的资源和较长的等待周期。
2. MARS DataFrame加速数据处理:大型排序;统计数据;聚合分析。
3.火星学习加速了无监督的学习;火星拉出分布式的深度学习计算。
4.使用GPU加速特定的计算。
火星场景2解释性计算
1.广告归因和检查特征的解释算法是巨大的,而且时间耗尽。
2.使用火星遥控器加速使用数十台服务器,以提高100倍的性能。
火星场景3大型K-最相邻算法
1.嵌入的普及使用向量表达实体非常普遍。
2.最近骨算法的火星与Scikit-Learn兼容。暴力算法计算了300万载体和300万载体的Top10相似计算(9万亿个矢量比较),并且在两个小时内与20名工人计算。大数据平台不能基于SQL+UDF.SMALLER MARS的性能比大数据平台高100倍。
3.火星支持分布的方法,以加速Faiss和Proxima(Alida House矢量检索图书馆)达到1000万和1亿的规模。
火星本身集成了一些python第三方套餐。IT中包括基本的主流机器学习和深度学习库。下面的内容讨论了将MARS用作智能建议,并使用LightGBM来制作分类算法。例如,有一些折扣可以判断是否为某些用户推动某些用户。
火星包括第三方包裹:
pyodps.readthedocs.io/zh%5c_cn/latest/mars-zird-parties.html
第一张图片的主要步骤通过AK连接到MaxCompute,通过AK,项目名称,Endpoint Information.next,创建一个4节点,每个节点8核心,32G群集,使用扩展扩展程序包,并生成100W的培训数据用户64维描述信息。
使用LightGBM 2分类算法模型培训:
将模型传递给MaxCompute作为资源对象,准备测试集数据
使用测试集数据验证模型获取分类: