PyODPS

简介: 【7月更文挑战第19天】

PyODPS 介绍及使用方法

1. PyODPS 通过该 SDK,可以更高效地开发 MaxCompute 任务、进行数据分析和管理 MaxCompute 资源。

2. 安装 PyODPS

PyODPS 兼容 Python 2(2.6 以上版本)和 Python 3 版本。可以通过以下命令安装 PyODPS:

pip install pyodps

安装完成后,可以通过以下代码初始化 MaxCompute 的入口:

import os
from odps import ODPS

# 确保 ALIBABA_CLOUD_ACCESS_KEY_ID 环境变量设置为用户 Access Key ID,
# ALIBABA_CLOUD_ACCESS_KEY_SECRET 环境变量设置为用户 Access Key Secret,
o = ODPS(
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
    project='your-default-project',
    endpoint='your-end-point',
)
```。

#### 3. 使用 PyODPS 进行数据处理
PyODPS 提供了 DataFrame 框架,支持更方便地方式来查询和操作 MaxCompute 数据。以下是一些基本操作的示例:

##### 3.1 创建表
```python
table = o.create_table('my_new_table', 'num bigint, num2 double', if_not_exists=True)

或者使用更简单的方式:

table = o.create_table('my_new_table', ('num bigint, num2 double', 'pt string'), if_not_exists=True)
```。

##### 3.2 写入数据
可以通过 `open_writer` 方法写入数据:
```python
with t.open_writer(partition='pt=test') as writer:
    records = [[111, 'aaa', True], [222, 'bbb', False], [333, 'ccc', True], [444, '中文', False]]
    writer.write(records)

也可以使用 write_table 方法:

records = [[111, 'aaa', True], [222, 'bbb', False], [333, 'ccc', True], [444, '中文', False]]
o.write_table('test_table', records, partition='pt=test', create_partition=True)
```。

##### 3.3 查询表数据
可以通过调用 `head` 方法获取表数据:
```python
t = o.get_table('dual')
for record in t.head(3):
    print(record[0])
    print(record['c_double_a'])
    print(record[0: 3])
    print(record[0, 2, 3])
    print(record['c_int_a', 'c_double_a'])

或者通过 open_reader 方法读取数据:

with t.open_reader(partition='pt=test') as reader:
    count = reader.count
    for record in reader[5:10]:
        # 处理记录
```。

##### 3.4 数据上传下载
MaxCompute Tunnel 是 MaxCompute 的数据通道,用户可以通过 Tunnel 向 MaxCompute 中上传或者下载数据:
```python
from odps.tunnel import TableTunnel

table = o.get_table('my_table')
tunnel = TableTunnel(odps)
upload_session = tunnel.create_upload_session(table.name, partition_spec='pt=test')
with upload_session.open_record_writer(0) as writer:
    record = table.new_record()
    record[0] = 'test1'
    record[1] = 'id1'
    writer.write(record)
    record = table.new_record(['test2', 'id2'])
    writer.write(record)
upload_session.commit([0])
```。

#### 4. 在 DataWorks 中使用 PyODPS
DataWorks 提供了 PyODPS 节点,可以在该节点中直接使用 Python 代码编写 MaxCompute 作业,并进行作业的周期性调度。以下是一些关键点:

- **ODPS 入口**:DataWorks 的 PyODPS 节点中会包含一个全局变量 `odps` 或 `o`,即 ODPS 入口,无需手动定义。
- **执行 SQL**:可以在 PyODPS 节点中执行 SQL,例如:
    ```python
    print(odps.exist_table('PyODPS_iris'))
  • 设置运行参数:可以通过设置 hints 参数来设置运行时的参数,例如:
      o.execute_sql('select * from PyODPS_iris', hints={
         'odps.sql.mapper.split.size': 16})
    
  • 读取运行结果:运行 SQL 的实例能够直接执行 open_reader 的操作,例如:
    ```python
    with o.execute_sql('select * from dual').open_reader() as reader:
      for record in reader:
          # 处理每一个 record
    
    ```。
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
分布式计算 自然语言处理 DataWorks
高效使用 PyODPS 最佳实践
以更清晰的认知 PyODPS,DataWorks PyODPS 节点以及 PyODPS 何时在计算集群运行,开发者如何利用 PyODPS 更高效地进行数据开发。
18978 3
高效使用 PyODPS 最佳实践
|
SQL 分布式计算 DataWorks
通过DataWorks使用PyODPS
PyODPS为MaxCompute的Python版SDK,支持在DataWorks中开发运行PyODPS任务。本文为您介绍在DataWorks上使用PyODPS的使用限制、主要流程和部分简单应用示例
640 2
|
分布式计算 安全 大数据
maxcomputer的介绍
maxcomputer的介绍
1641 3
|
10月前
|
SQL 分布式计算 DataWorks
使用DataWorks PyODPS节点调用XGBoost算法
本文介绍如何在DataWorks中通过PyODPS3节点调用XGBoost算法完成模型训练与测试,并实现周期离线调度。主要内容包括:1) 使用ODPS SQL构建数据集;2) 创建PyODPS3节点进行数据处理与模型训练;3) 构建支持XGBoost的自定义镜像;4) 测试运行并选择对应镜像。适用于需要集成机器学习算法到大数据工作流的用户。
429 24
|
存储 分布式计算 DataWorks
DataWorks产品使用合集之如何引用第三方库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
SQL 编解码 分布式计算
【MaxCompute 常见问题】 UDF
查看资源信息 假设资源名称为 pyudf_test.py,在 odpscmd 客户端执行 desc resource pyudf_test.py;,或在 datastudio 中新建 SQL 节点后输入 desc resource pyudf_test.py;执行。
【MaxCompute 常见问题】 UDF
|
分布式计算 数据挖掘 数据处理
PyODPS
PyODPS 是阿里云开发的一种基于 Python 的数据处理工具,它可以让用户使用 Python 语言进行数据查询、分析和挖掘。PyODPS 支持强大的数据处理功能和高效的数据分析能力,可以帮助用户快速构建高效的数据处理和分析应用。
924 0
|
SQL 运维 分布式计算
一篇文章彻底掌握 hive 中的 ORDER/SORT/CLUSTER/DISTRIBUTE BY 和 BUCKET 桶表
一篇文章彻底掌握 hive 中的 ORDER/SORT/CLUSTER/DISTRIBUTE BY 和 BUCKET 桶表
|
分布式计算 MaxCompute
PyODPS
PyODPS
376 1

热门文章

最新文章