本文为您介绍如何通过PyODPS读取分区表数据。
前提条件
- 开通MaxCompute。
- 开通DataWorks。
- 在DataWorks上完成创建业务流程,本例使用DataWorks简单模式。详情请参见创建业务流程。
操作步骤
- 准备测试数据。
- 使用PyODPS读取分区表数据。
更新时间:2021-01-12 14:08
本文为您介绍如何通过PyODPS读取分区表数据。
create table if not exists user_detail
(
userid BIGINT comment '用户id',
job STRING comment '工作类型',
education STRING comment '教育程度'
) comment '用户信息表'
partitioned by (dt STRING comment '日期',region STRING comment '地区');
create table if not exists user_detail_ods
(
userid BIGINT comment '用户id',
job STRING comment '工作类型',
education STRING comment '教育程度',
dt STRING comment '日期',
region STRING comment '地区'
);
0001,互联网,本科,20190715,beijing
0002,教育,大专,20190716,beijing
0003,金融,硕士,20190715,shandong
0004,互联网,硕士,20190715,beijing
insert overwrite table user_detail partition (dt,region)
select userid,job,education,dt,region from user_detail_ods;
import sys
from odps import ODPS
reload(sys)
print('dt=' + args['dt'])
#修改系统默认编码。
sys.setdefaultencoding('utf8')
#个人信息凭证。
t = o.get_table('user_detail')
#获取分区表。
print t.exist_partition('dt=20190715,region=beijing')
#查看所有分区。
for partition in t.partitions:
print partition.name
#您可以通过以下三种方式查询分区表数据。
#第一种方式如下。
with t.open_reader(partition='dt=20190715,region=beijing') as reader1:
count = reader1.count
print("第一种方式查询分区表数据:")
for record in reader1:
print record[0],record[1],record[2]
#第二种方式如下。
print("第二种方式查询分区表数据:")
reader2 = t.open_reader(partition='dt=20190715,region=beijing')
for record in reader2:
print record["userid"],record["job"],record["education"]
#第三种方式如下。
print("第三种方式查询分表数据:")
for record in o.read_table('user_detail', partition='dt=20190715,region=beijing'):
print record["userid"],record["job"],record["education"]
在文档使用中是否遇到以下问题
更多建议
匿名提交