PyODPS

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
6月前
|
SQL 分布式计算 DataWorks
通过DataWorks使用PyODPS
PyODPS为MaxCompute的Python版SDK,支持在DataWorks中开发运行PyODPS任务。本文为您介绍在DataWorks上使用PyODPS的使用限制、主要流程和部分简单应用示例
251 2
|
5月前
|
分布式计算 DataWorks 大数据
MaxCompute操作报错合集之pyODPS导入python包的时候报错,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
6月前
|
分布式计算 DataWorks MaxCompute
PyODPS是MaxCompute的Python SDK
PyODPS是MaxCompute的Python SDK
81 2
|
分布式计算 DataWorks MaxCompute
DataWorks中,您可以使用PyODPS库来获取ODPS表的行数
DataWorks中,您可以使用PyODPS库来获取ODPS表的行数
241 1
|
6月前
|
机器学习/深度学习 分布式计算 数据可视化
MaxCompute Notebook
MaxCompute Notebook
84 0
|
分布式计算 MaxCompute
PyODPS
PyODPS
166 1
|
分布式计算 MaxCompute Python
在MaxCompute中使用pyodps的DataFrame
在MaxCompute中使用pyodps的DataFrame
274 2
|
分布式计算 DataX MaxCompute
DataX使用指南——ODPS to ODPS
1. DataX是什么 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。
47799 2
|
SQL 分布式计算 DataWorks
【MaxCompute 常见问题】 PyODPS
1. PyODPS数据类型如何设置? 如果您使用 PyODPS,可以通过下列方法打开新数据类型开关: 如果通过 execute_sql 方式打开新数据类型,可以执行 o.execute_sql('setodps.sql.type.system.odps2=true;query_sql', hints={"od ps.sql.submit.mode" : "script"})。 如果通过 Dataframe 打开新数据类型
【MaxCompute 常见问题】 PyODPS
|
自然语言处理 DataWorks 大数据
DataWorks PyODPS节点实现结巴中文分词
DataWorks PyODPS节点实现结巴中文分词
2691 0