文档

使用PyODPS读写MaxCompute表

更新时间:

在DSW实例中,您可以通过SQL File方便地查询MaxCompute表数据,以及可视化展示查询结果,也可以使用PyODPS实现对MaxCompute表更多丰富的操作。本文介绍如何使用PyODPS和SQL File读MaxCompute表数据。

前提条件

在开始执行操作前,请确认您已经完成以下准备工作:

操作步骤

您可以使用PyODPS与MaxCompute或Designer中的数据进行通信。PyODPS是阿里云提供的Python SDK,详情请参见PyODPS开发文档

  1. 安装PyODPS。

    DSW的Terminal中,执行如下命令。

    pip install pyodps
  2. 执行如下命令检查安装是否成功。若无返回值和报错信息表示安装成功。

    python -c "from odps import ODPS"
  3. 如果您使用的Python不是系统默认的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 ID和 AccessKey Secret字符串。

    • your-default-projectyour-end-point:需替换为您设置的默认项目名称与Endpoint信息,各地域的Endpoint请参见Endpoint

    关于如何使用PyODPS对MaxCompute表进行其他操作(例如写入数据),详情请参见

相关文档

DSW提供了SQL File功能,支持您通过SQL语句的方式对有查询权限的MaxCompute数据源进行快速的数据查询,具体操作,请参见使用SQL File查询MaxCompute表