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表进行其他操作(例如写入数据),详情参见表。
-
该文章对您有帮助吗?