使用PyODPS讀寫MaxCompute表
在DSW實(shí)例中,您可以通過SQL File方便地查詢MaxCompute表數(shù)據(jù),以及可視化展示查詢結(jié)果,也可以使用PyODPS實(shí)現(xiàn)對MaxCompute表更多豐富的操作。本文介紹如何使用PyODPS和SQL File讀MaxCompute表數(shù)據(jù)。
前提條件
在開始執(zhí)行操作前,請確認(rèn)您已經(jīng)完成以下準(zhǔn)備工作:
已開通MaxCompute,詳情請參見開通MaxCompute和DataWorks。
可選:已創(chuàng)建支持登錄PAI控制臺(tái)的RAM角色,詳情請參見RAM角色登錄并使用PAI。
可選:已為RAM角色授權(quán)MaxCompute項(xiàng)目操作權(quán)限,詳情請參見通過控制臺(tái)(新版)管理用戶權(quán)限。
安裝PyODPS環(huán)境前,您可先查看下Python的版本,建議Python版本為3.6及以上版本,不建議使用2.7及以下版本。
已完成身份驗(yàn)證配置。您可以使用環(huán)境變量、本地文件等方式進(jìn)行配置,具體操作請參見身份驗(yàn)證配置。
操作步驟
您可以使用PyODPS與MaxCompute或Designer中的數(shù)據(jù)進(jìn)行通信。PyODPS是阿里云提供的Python SDK,詳情請參見PyODPS開發(fā)文檔。
安裝PyODPS。
在DSW的Terminal中,執(zhí)行如下命令。
pip install pyodps
執(zhí)行如下命令檢查安裝是否成功。若無返回值和報(bào)錯(cuò)信息表示安裝成功。
python -c "from odps import ODPS"
如果您使用的Python不是系統(tǒng)默認(rèn)的Python版本,安裝完P(guān)IP后,您可以執(zhí)行如下命令進(jìn)行Python版本切換。
/home/tops/bin/python3.7 -m pip install setuptools>=3.0 #/home/tops/bin/python3.7為安裝的python路徑
通過SQL讀取MaxCompute數(shù)據(jù)。
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', ) # 讀取數(shù)據(jù)。 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配置可參考機(jī)器配置,取值大于1時(shí)可以開啟多線程加速。
其中:
ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET:需將該環(huán)境變量設(shè)置為您的阿里云賬號的AccessKey ID和 AccessKey Secret。
說明不建議直接使用AccessKey ID和 AccessKey Secret字符串。
your-default-project和your-end-point:需替換為您設(shè)置的默認(rèn)項(xiàng)目名稱與Endpoint信息,各地域的Endpoint請參見Endpoint。
關(guān)于如何使用PyODPS對MaxCompute表進(jìn)行其他操作(例如寫入數(shù)據(jù)),詳情請參見表。
相關(guān)文檔
DSW提供了SQL File功能,支持您通過SQL語句的方式對有查詢權(quán)限的MaxCompute數(shù)據(jù)源進(jìn)行快速的數(shù)據(jù)查詢,具體操作,請參見使用SQL File查詢MaxCompute表。