Python SDK概述

PyODPS是MaxCompute的Python SDK,能够方便地使用Python语言与MaxCompute进行交互和数据处理。通过该SDK,可以更高效地开发MaxCompute任务、进行数据分析和管理MaxCompute资源。本文为您介绍PyODPS的使用和常见方法。

PyODPS介绍

PyODPS提供了DataFrame框架和MaxCompute对象的基本操作方法,使用户能够更轻松地使用Python语言进行MaxCompute任务的开发和数据处理。PyODPS兼容Python2(2.6以上版本)和Python3版本。

获取详细PyODPS信息的方式如下:

您也可以通过如下方式参与PyODPS的生态开发:

初始化入口

在使用PyODPS前,您需要用阿里云账号初始化一个MaxCompute的入口,执行命令如下。

import os
from odps import ODPS
# 确保 ALIBABA_CLOUD_ACCESS_KEY_ID 环境变量设置为用户 Access Key ID,
# ALIBABA_CLOUD_ACCESS_KEY_SECRET 环境变量设置为用户 Access Key Secret,
o = ODPS(
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
    project='your-default-project',
    endpoint='your-end-point',
)

参数说明:

  • ALIBABA_CLOUD_ACCESS_KEY_ID:需将该环境变量设置为具备目标MaxCompute项目中待操作对象相关操作权限的AccessKey ID。您可以进入AccessKey管理页面获取AccessKey ID。

  • ALIBABA_CLOUD_ACCESS_KEY_SECRET:需将该环境变量设置为AccessKey ID对应的AccessKey Secret。您可以进入AccessKey管理页面获取AccessKey Secret。

  • your-default-project:使用的MaxCompute项目名称。您可以登录MaxCompute控制台,在左侧导航栏选择工作区 > 项目管理,查看MaxCompute项目名称。

  • your-end-point:目标MaxCompute项目所在地域的Endpoint。详情请参见Endpoint

方法说明

PyODPS提供MaxCompute对象的基本操作方法,详情如下。

操作类型

方法名称

方法说明

项目

get_project(project_name)

获取MaxCompute项目名称。

exist_project(project_name)

判断某个MaxCompute项目是否存在。

list_tables()

列出MaxCompute项目下的所有表。

exist_table(table_name)

判断表是否存在。

get_table(table_name,project=project_name)

获取指定表。允许跨项目获取表。

create_table()

创建表。

read_table()

读取表数据。

write_table()

写入表数据。

delete_table()

删除已经存在的表。

表分区

exist_partition()

判断分区是否存在。

get_partition()

获取分区。

create_partition()

创建分区。

delete_partition()

删除分区。

SQL

execute_sql()/run_sql()

执行SQL语句。

open_reader()

读取执行结果。

任务实例

list_instances()

获取MaxCompute项目下的所有Instance。

exist_instance()

判断Instance是否存在。

get_instance()

获取Instance。

stop_instance()

停止Instance。

资源

create_resource()

创建资源。

open_resource()

打开资源。

get_resource()

获取资源。

list_resources()

列出所有资源。

exist_resource()

判断资源是否存在。

delete_resource()

删除资源。

函数

create_function()

创建函数。

delete_function()

删除函数。

数据上传下载通道

create_upload_session()

创建上传数据会话。

create_download_session()

创建下载数据会话。

说明

使用create_table()read_table()write_table()delete_table()方法需要传入参数。有关详细使用说明详情,请参见Python SDK示例:Table