一、前言
对于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节点会带入想当然的想法,结果调用出错。这里谨记录下本人遇到的问题和情况总结,做一点小小的分享。