PyODPS是MaxCompute的Python版本的SDK,提供简单方便的Python编程接口。PyODPS支持类似Pandas的快速、灵活和富有表现力的数据结构。您可以通过PyODPS提供的DataFrame API使用Pandas的数据结果处理功能。本文用于帮助您快速开始使用PyODPS,并且能够用于实际项目。
前提条件
- 已开通MaxCompute服务,详情请参见开通MaxCompute。
- 已开通DataWorks服务,并创建工作空间,详情请参见创建项目空间。
背景信息
MaxCompute大部分开发都可以通过SQL语句实现,但对于复杂的业务场景以及自定义函数(UDF)都需要使用Python,例如:
- 接口对接
MaxCompute表的每条数据,都需要通过身份证号码和外部HTTP的验证接口进行连通。
- 异步调用
对于上千个处理逻辑相似的任务,如果对不同任务都单独创建一个节点,不利于管理,并且在同一时间会占用过多资源。利用PyODPS可以异步生成SQL执行任务队列,通过队列实现任务数的并发,方便统一管理所有节点。
- UDF开发
当MaxCompute内置函数无法满足需求时,需要快速开发自定义函数(UDF)。例如,对DECIMAL类型进行千分位数字格式化展示。
- SQL性能提升
您需要计算库存事务是否遵循先进先出的规则。由于只有一张表,每条数据都需要跟历史数据进行比对,而通常库存事务表体量巨大,时间复杂度是O(N²),往往无法运行并处理历史至今的结果。用Python结合Cache循环每条记录,只需遍历一次即可,时间复杂度是O(N),可极大提升效率。
- 其他SQL很难解决的场景
金额分摊模型。例如,10元由3个人均分,把尾差摊到其中1人身上。
更多PyODPS应用场景请参见:
- DataFrame操作:DataFrame快速入门。
- 读取分区表数据:PyODPS读取分区表数据。
- 参数传递:PyODPS参数传递。
- 使用第三方包:PyODPS使用第三方包。
- 查看一级分区:PyODPS查看一级分区。
- 条件查询:PyODPS条件查询。
- DataFrame Sequence及执行:PyODPS的Sequence及执行操作。