PyODPS是MaxCompute的Python SDK,能夠方便地使用Python語言與MaxCompute進行互動和資料處理。通過該SDK,可以更高效地開發MaxCompute任務、進行資料分析和管理MaxCompute資源。本文為您介紹PyODPS的使用和常見方法。
PyODPS介紹
PyODPS提供了DataFrame架構和MaxCompute對象的基本操作方法,使使用者能夠更輕鬆地使用Python語言進行MaxCompute任務的開發和資料處理。PyODPS相容Python2(2.6以上版本)和Python3版本。
擷取詳細PyODPS資訊的方式如下:
瞭解PyODPS:PyODPS文檔和PyODPS雲棲社區專輯。
下載odps-python-sdk:Github。
安裝PyODPS:PyODPS安裝指南。
開發PyODPS:PyODPS開發指南。
您也可以通過如下方式參與PyODPS的生態開發:
編寫PyODPS文檔:PyODPS。
開發PyODPS代碼:代碼。
技術交流:DingTalk群申請
初始化入口
在使用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。