PyODPS是MaxCompute的Python SDK,可在DSW中直接讀寫MaxCompute表資料,適用於資料探索和模型訓練情境。
前提條件
在開始操作前,請確認已完成以下準備工作:
-
已開通MaxCompute,詳情參見開通MaxCompute。
-
使用者帳號已有MaxCompute專案操作許可權。如果使用主帳號登入DSW執行個體,則無需授權。如果使用RAM帳號,可參考以下授權步驟。
-
安裝PyODPS環境前,需要安裝3.6或以上版本的Python。
操作步驟
您可以使用PyODPS與MaxCompute或Designer中的資料進行通訊。詳情參見PyODPS開發文檔。
-
安裝PyODPS。
在DSW的Terminal中,執行以下命令。
pip install pyodps 執行如下命令檢查安裝是否成功。若無傳回值和報錯資訊表示安裝成功。
# windows系統,請使用python -c "from odps import ODPS" python3 -c "from odps import ODPS"-
如果您使用的Python不是系統預設版本,安裝PIP後,執行以下命令切換Python版本。
/home/tops/bin/python3.7 -m pip install setuptools>=3.0 #/home/tops/bin/python3.7為安裝的python路徑 -
通過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_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET:阿里雲帳號的AccessKey ID和AccessKey Secret。為防止帳號資訊洩漏,建議將AccessKey配置為環境變數。
-
擷取AccessKey資訊,參見建立AccessKey。
-
如何設定環境變數,參見配置環境變數。
-
your-default-project和your-end-point:需替換為您的預設專案名稱與Endpoint資訊,各地區的Endpoint參見Endpoint。
-
關於如何使用PyODPS對MaxCompute表進行其他動作(例如寫入資料),詳情參見表。
-