产品测评 | 上手分布式Python计算服务MaxFrame产品最佳实践

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: MaxFrame是阿里云自研的分布式计算框架,专为大数据处理设计,提供高效便捷的Python开发体验。其主要功能包括Python编程接口、直接利用MaxCompute资源、与MaxCompute Notebook集成及镜像管理功能。本文基于MaxFrame最佳实践,详细介绍了在DataWorks中使用MaxFrame创建数据源、PyODPS节点和MaxFrame会话的过程,并展示了如何通过MaxFrame实现分布式Pandas处理和大语言模型数据处理。测评反馈指出,虽然MaxFrame具备强大的数据处理能力,但在文档细节和新手友好性方面仍有改进空间。

随着大数据技术的不断发展,分布式计算框架在数据处理和分析领域扮演着越来越重要的角色。阿里云自研的MaxCompute MaxFrame(简称“MaxFrame”)作为一种专为大数据处理设计的分布式计算框架,旨在提供高效、便捷的Python开发体验。本评测基于MaxFrame最佳实践来进行体验。

一、产品功能特性

  1. Python编程接口:MaxFrame支持Python编程接口,使得开发者可以使用熟悉的Python语言进行大数据处理和分析,降低了学习成本,提高了开发效率。
  2. 直接利用MaxCompute资源:MaxFrame能够直接使用MaxCompute的计算资源和数据接口,无需额外配置或迁移数据,简化了数据处理流程。
  3. 与MaxCompute Notebook集成:与MaxCompute Notebook的无缝集成,为开发者提供了一个交互式开发环境,支持代码编写、调试和结果可视化,进一步提升了开发体验。
  4. 镜像管理功能:MaxFrame提供镜像管理功能,允许开发者自定义开发环境,包括安装所需的Python库和依赖项,增强了开发环境的灵活性和可定制性。

二、在DataWorks中使用MaxFrame

1、创建MaxCompute数据源

登录MaxCompute控制台,在左上角选择地域。在左侧导航栏选择工作区 > 项目管理,并单击新建项目。

image.png

image.png

登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的更多 > 管理中心,在下拉框中选择对应工作空间后单击进入管理中心。
image.png

进入工作空间管理中心页面后,单击左侧导航栏的数据源 > 数据源列表,进入数据源页面。

image.png

单击新增数据源,选择MaxCompute,根据界面指引创建数据源。
image.png

2、进入DataWorks的数据开发页面创建PyODPS 3节点。

image.png

3、创建MaxFrame会话。

image.png

在目标MaxCompute项目中运行如下SQL,查询test_prefix_source_table表的数据

SELECT * FROM test_prefix_source_table;
AI 代码解读

返回结果:
image.png

三、基于MaxFrame实现分布式Pandas处理

1、在安装了MaxFrame的Python环境下运行如下脚本,准备测试表和测试数据。

image.png

连接到上海的节点有超时。
image.png

2、把endpoint换成VPC节点,很快就成功了。

https://service.cn-shanghai-vpc.maxcompute.aliyun-inc.com/api
AI 代码解读

image.png

3、查询sales_maxframe_demo表和product_maxframe_demo表的数据
image.png

image.png

场景1:使用merge方法连接两张数据表,以获取sales_maxframe_demo表中所有sale_id对应的product_name以及该产品的所有year和price

image.png

在sales表数据量为5000W条(size:1.96 GB),product表数据量为10W条(size:3 MB)的数据样本中进行运算MaxFrame的haish耗时为48.539秒。

场景2:选出每个出售过的产品第一年销售的产品ID、年份、数量和价格

第一次运行失败
image.png

试了好几次不知道为什么一直报错
image.png

换个endpoint节点。还是超时
image.png

image.png

场景3:为每个用户获取其消费最多的产品ID

也是运行失败
image.png

四、基于MaxFrame实现大语言模型数据处理

对原始数据进行分析,若其中含有“Copyright”等版权信息,需要对该类敏感信息进行去除。

例如:repo_name值为“menuka94/cdnjs”时,对应的content字段中含有“Copyright”等版权信息。
image.png

1、创建MaxCompute入口类。
image.png

2、引用MaxCompute内置镜像common,其中包含Python环境及本次数据处理所需的regex等第三方包。

config.options.sql.settings = {
    "odps.session.image": "common"
}
AI 代码解读

报错如下:

image.png

修改为如下之后,正常运行成功。

from maxframe import config
# 在new_session之前添加
config.options.sql.settings = {
    "odps.session.image": "common",
}
AI 代码解读

image.png

3、通过UDF构建数据处理逻辑。

image.png

4、创建MaxFrame Session,提交作业至MaxCompute。

def maxframe_job():
    s_time = time.time()
    table_name = 'bigdata_public_dataset.data_science.llm_redpajama_github_demo_data'

    session = new_session(o)
    print('session id: ', session.session_id)

    df = md.read_odps_table(table_name, index_col='id')
    df = df.apply(
                clean_copyright,
                axis=1,  # row
                output_type="dataframe",
            )

    out_table = 'tmp_mf_clean_copyright'
    md.to_odps_table(df, out_table).execute()
    session.destroy()

maxframe_job()
AI 代码解读

需要连着上面3个步骤一起执行。
image.png

5、查询tmp_mf_clean_copyright表,对之前含有“Copyright”等版权信息的数据进行查看,已去除敏感信息。

SELECT * FROM tmp_mf_clean_copyright;
AI 代码解读

返回有报错:

image.png

修改语句如下:

SELECT * FROM tmp_mf_clean_copyright limit 100;
AI 代码解读

返回结果如下:
image.png

MaxCompute已与阿里云人工智能平台PAI成功对接,您可基于PAI Desinger进行更多LLM算子的开发和使用。

五、测评反馈

本次测评是针对官方提供的MaxFrame产品最佳实践文档来进行实践体验。下面是体验后的一些反馈。

1、首先对MaxFrame产品使用,是需要掌握前置知识的,比如MaxCompute的使用,Python的知识等,若是新手直接来使用该产品可能比较困难,希望可以在MaxFrame产品的文档中多加些Datawork和MaxCompute的操作步骤。

2、MaxCompute官方文档提供的提供内容过于简单,有些超链接是无效的。这个链接一直跳回到这个界面,但这里没有具体的操作步骤,和相关截图,提供不了太多的帮助。

image.png

3、在基于MaxFrame实现分布式Pandas处理的实践中。

文档这里建议的endpoint类型一直都是超时,选择VPC类型才能正常执行。
image.png

image.png

使用MaxFrame进行数据分析的场景2和场景3执行总是报错。里面只需要修改Access Key ID、Access Key Secret、project、endpoint这四个参数,始终无法运行成功,不知道是哪里的问题。
image.png

环境中没有本地Pandas(版本为1.3.5),所以也无法实现结果对比。

4、在基于MaxFrame实现大语言模型数据处理的实践中。

文档描述的这4个步骤是做代码的分部说明,但需要整体来执行。我按照每一步来执行,导致执行的时候会有依赖报错。后来才明白要一起执行,这个还是建议在文档中说明一下,否则也有会有人和我犯一样的错误。
image.png

数据查询这个SQL语句,是需要在maxcompute中执行,这个也要说明下。同时SELECT * FROM tmp_mf_clean_copyright; 需要加限制,否则行太多报错。建议把这个语句优化下。
image.png

MaxFrame在工作和学习中的一些优势

1、MaxFrame结合MaxCompute的强大算力,在工作中可以快速完成数据清洗、特征构建(如用户画像特征、时间序列特征)、数据分片与批量处理,支持下游模型训练。

2、MaxFrame通过纯Python编程接口,无需掌握复杂的分布式计算模型,降低了学习门槛。

3、MaxFrame能够为AI模型训练提供强大的数据支持。应用于如下业务场景,快速处理超大规模的训练数据集,为深度学习模型提供优质数据输入;动态资源扩展,减少模型训练前数据准备的时间,使学习者能够更多地聚焦于模型算法本身。
image.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
109 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
85 28
Python 高级编程与实战:深入理解并发编程与分布式系统
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧、数据科学、机器学习、Web 开发、API 设计、网络编程和异步IO。本文将深入探讨 Python 在并发编程和分布式系统中的应用,并通过实战项目帮助你掌握这些技术。
Python 高级编程与实战:构建分布式系统
本文深入探讨了 Python 中的分布式系统,介绍了 ZeroMQ、Celery 和 Dask 等工具的使用方法,并通过实战项目帮助读者掌握这些技术。ZeroMQ 是高性能异步消息库,支持多种通信模式;Celery 是分布式任务队列,支持异步任务执行;Dask 是并行计算库,适用于大规模数据处理。文章结合具体代码示例,帮助读者理解如何使用这些工具构建分布式系统。
|
2月前
|
云产品评测|分布式Python计算服务MaxFrame获奖名单公布!
云产品评测|分布式Python计算服务MaxFrame获奖名单公布!
104 0
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
248 7
云产品评测|分布式Python计算服务MaxFrame | 在本地环境中使用MaxFrame + 基于MaxFrame实现大语言模型数据处理
本文基于官方文档,介绍了由浅入深的两个部分实操测试,包括在本地环境中使用MaxFrame & 基于MaxFrame实现大语言模型数据处理,对步骤有详细说明。体验下来对MaxCompute的感受是很不错的,值得尝试并使用!
100 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等