本文为您介绍如何在DataWorks中进行PyODPS参数的传递。
前提条件
请提前完成如下操作:
- 在DataWorks上完成业务流程创建。详情请参见创建业务流程。 
操作步骤
说明 
本例使用DataWorks简单模式,创建工作空间时,默认保持参加数据开发(Data Studio)公测不开启,公测工作空间不适用本例。
- 准备测试数据。 - 创建表并上传数据。操作方法请参见建表并上传数据。 - 表结构以及源数据信息如下。 - 分区表user_detail建表语句如下。 - 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 '地区');
- 源数据表user_detail_ods建表语句如下。 - CREATE TABLE IF NOT EXISTS user_detail_ods ( userid BIGINT COMMENT '用户id', job STRING COMMENT '工作类型', education STRING COMMENT '教育程度', dt STRING COMMENT '日期', region STRING COMMENT '地区' );
- 测试数据保存为user_detail.txt文件。将此文件上传至表user_detail_ods中。 - 0001,互联网,本科,20190715,beijing 0002,教育,大专,20190716,beijing 0003,金融,硕士,20190715,shandong 0004,互联网,硕士,20190715,beijing
 
- 将源数据表 - user_detail_ods中的数据写入分区表- user_detail。- 登录DataWorks控制台。 
- 在左侧导航栏,单击工作空间。 
- 确认目标工作空间,选择操作列中的。 
- 右键单击业务流程,选择。 
- 输入节点名称,并单击确认。 
- 在ODPS SQL节点中输入如下代码。 - INSERT OVERWRITE TABLE user_detail PARTITION (dt, region) SELECT userid, job, education, dt, region FROM user_detail_ods;
- 单击运行,完成数据写入。 
 
 
- 使用PyODPS传递参数。 - 登录DataWorks控制台。 
- 在左侧导航栏,单击工作空间。 
- 确认目标工作空间,选择操作列中的。 
- 在数据开发页面,右键单击已经创建的业务流程,选择。 
- 输入节点名称,单击确认。 
- 在PyODPS 2节点中输入如下代码实现参数传递。 - import sys reload(sys) print('dt=' + args['dt']) #修改系统默认编码。 sys.setdefaultencoding('utf8') #获取表。 t = o.get_table('user_detail') #接受传入的分区参数。 with t.open_reader(partition='dt=' + args['dt'] + ',region=beijing') as reader1: count = reader1.count print("查询分区表数据:") for record in reader1: print record[0],record[1],record[2]
- 单击带参运行。  
- 在参数对话框填写配置参数,单击运行。 - 配置参数说明如下: - 资源组名称:选择默认资源组。 
- dt:设置为dt=20190715。 
  
- 在运行日志中查看运行结果。  
 
该文章对您有帮助吗?