PyODPS

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 【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 更高效地进行数据开发。
18337 3
高效使用 PyODPS 最佳实践
|
分布式计算 运维 数据挖掘
maxcomputer
maxcomputer
4451 2
|
存储 分布式计算 大数据
MaxCompute数据类型映射
MaxCompute数据类型映射
|
分布式计算 DataWorks API
dataworks100g大小的csv文件怎么上传到odps?
【1月更文挑战第20天】【1月更文挑战第96篇】dataworks100g大小的csv文件怎么上传到odps?
264 1
|
SQL Oracle 关系型数据库
NVL() 函数:SQL中的空值处理利器
【8月更文挑战第31天】
1845 0
|
分布式计算 DataWorks MaxCompute
DataWorks产品使用合集之怎么更改ODPS表的生命周期为永久
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
存储 分布式计算 DataWorks
DataWorks产品使用合集之如何引用第三方库
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
分布式计算 资源调度 DataWorks
DataWorks操作报错合集之点击校验时出现报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
275 0
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之如何进行数据加密解密
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
422 2