当前位置: 首页 > 网络应用技术

大型数据科学分析基于MaxCompute分布式Python功能

时间:2023-03-06 22:32:41 网络应用技术

  简要介绍:如何使用云上的分布式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作为资源对象,准备测试集数据

  使用测试集数据验证模型获取分类: