全部產品
Search
文件中心

Platform For AI:如何使用PyODPS讀寫MaxCompute表資料

更新時間:Jul 02, 2026

PyODPS是MaxCompute的Python SDK,可在DSW中直接讀寫MaxCompute表資料,適用於資料探索和模型訓練情境。

前提條件

在開始操作前,請確認已完成以下準備工作:

  • 已開通MaxCompute,詳情參見開通MaxCompute

  • 使用者帳號已有MaxCompute專案操作許可權。如果使用主帳號登入DSW執行個體,則無需授權。如果使用RAM帳號,可參考以下授權步驟。

    操作步驟

    1. 使用主帳號登入MaxCompute控制台,在左上方選擇地區。

    2. 在左側導覽列選擇工作區 > 專案管理

    3. 專案管理頁面,單擊目標專案操作列的管理

    4. 角色許可權頁簽,找到role_project_dev,單擊成員管理,添加對應RAM帳號。

    更多MaxCompute許可權管理,參見通過控制台系統管理使用者許可權

  • 安裝PyODPS環境前,需要安裝3.6或以上版本的Python

操作步驟

您可以使用PyODPS與MaxCompute或Designer中的資料進行通訊。詳情參見PyODPS開發文檔

  1. 安裝PyODPS。

    DSW的Terminal中,執行以下命令。

    pip install pyodps
  2. 執行如下命令檢查安裝是否成功。若無傳回值和報錯資訊表示安裝成功。

    # windows系統,請使用python -c "from odps import ODPS"
    python3 -c "from odps import ODPS"
  3. 如果您使用的Python不是系統預設版本,安裝PIP後,執行以下命令切換Python版本。

    /home/tops/bin/python3.7 -m pip install setuptools>=3.0
    #/home/tops/bin/python3.7為安裝的python路徑
  4. 通過SQL讀取MaxCompute資料。

    import numpy as np
    import pandas as pd
    import os
    
    from odps import ODPS
    from odps.df import DataFrame
    # 建立串連。
    o = ODPS(
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
        project='your-default-project',
        endpoint='your-end-point',
    )
    
    # 讀取資料。
    sql = '''
    SELECT  
        *
    FROM
        your-default-project.<table>
    LIMIT 100
    ;
    '''
    query_job = o.execute_sql(sql)
    result = query_job.open_reader(tunnel=True)
    df = result.to_pandas(n_process=1) #n_process配置可參考機器配置,取值大於1時可以開啟多線程加速。

    其中:

    • ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET:阿里雲帳號的AccessKey ID和AccessKey Secret。為防止帳號資訊洩漏,建議將AccessKey配置為環境變數。

      • 擷取AccessKey資訊,參見建立AccessKey

      • 如何設定環境變數,參見配置環境變數

      • your-default-projectyour-end-point:需替換為您的預設專案名稱與Endpoint資訊,各地區的Endpoint參見Endpoint

    關於如何使用PyODPS對MaxCompute表進行其他動作(例如寫入資料),詳情參見