天天看点

DataWorks关于PyODPS的节点参数

一、前言

对于ODPS SQL节点的参数配置,是比较清晰明了的。对于习惯使用ODPS的人来说,想必大家也已经十分熟悉了。

详情可以找一找阿里云的官方文档,这里贴个传送门:

https://help.aliyun.com/document_detail/74450.html?spm=a2c4g.11186623.6.644.63bf5c57zj8JuV

二、PyODPS的参数设置

与ODPS SQL一样,仍然分系统参数和自定义参数。

2.1 系统参数

系统参数的使用方式与SQL节点一致,直接在页面赋值即可调用。

bizdate = '${bdp.system.bizdate}'
print bizdate
cyctime = '${bdp.systen.cyctime}'
print cyctime
           

直接在节点上点

运行(F8)

试试,你会发现,系统参数并未被正确调用。

Executing user script with PyODPS 0.8.0

${bdp.system.bizdate}
${bdp.systen.cyctime}
           

这是为啥呢?说实话我也不清楚,但是去运维中心进行冒烟测试或者补数据调度时,这些参数是会被正确调用的。所以不影响实际使用,只是在测试时会有些疑惑,这里着实卡了我好一会。

2.2 自定义参数

自定义参数的调用与SQL节点不太一样,采用 args[‘参数名’] 的形式,需要注意。

诸如:

args['bizdate']

其余步骤与SQL节点一致,在右侧的调度配置页面的基础属性一栏填写

bizdate=$[yyyymmdd-1]

即可。

我们用这种形式写个简单自定义参数试试:

dd = args['bizdate']
print dd
           

同样直接在节点上点击

运行(F8)

Executing user script with PyODPS 0.8.0
20190320
           

参数被正确调用了。

三、结语

对于习惯使用ODPS SQL节点的人来说,初次使用PyODPS节点会带入想当然的想法,结果调用出错。这里谨记录下本人遇到的问题和情况总结,做一点小小的分享。