PyODPS是MaxCompute的Python SDK,能够方便地使用Python语言与MaxCompute进行交互和数据处理。通过该SDK,可以更高效地开发MaxCompute任务、进行数据分析和管理MaxCompute资源。本文为您介绍PyODPS的使用和常见方法。
PyODPS介绍
PyODPS提供了DataFrame框架和MaxCompute对象的基本操作方法,PyODPS兼容Python2(2.6以上版本)和Python3版本。
获取详细PyODPS信息的方式如下:
了解PyODPS:PyODPS文档。
安装PyODPS:PyODPS安装指南。
开发PyODPS:PyODPS开发指南。
初始化入口
在使用PyODPS前,您需要用阿里云账号初始化一个MaxCompute的入口,执行命令如下。
import os
from odps import ODPS
# 确保ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET环境变量设置为用户Access Key ID的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和ALIBABA_CLOUD_ACCESS_KEY_SECRET:需将该环境变量设置为具备目标MaxCompute项目中待操作对象相关操作权限的AccessKey ID和AccessKey Secret。您可以进入AccessKey管理页面获取。
your-default-project:MaxCompute项目名称。您可以登录MaxCompute控制台,在左侧导航栏选择工作区 > 项目管理进行查看。
your-end-point:目标MaxCompute项目所在地域的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。