开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

spark任务参数这里想要使用调度参数怎么使用?

spark任务参数这里想要使用调度参数怎么使用?image.png

展开
收起
真的很搞笑 2023-07-12 07:41:49 83 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在阿里云DataWorks中,如果您需要在Spark任务中使用调度参数,可以通过如下方式进行配置:
    在DataWorks中创建调度任务,并在任务配置中设置调度参数。调度参数可以在任务配置的“高级属性”中进行设置,例如定义一个调度参数${date},表示任务执行的日期。
    在Spark任务中使用调度参数。可以在Spark任务的参数中使用调度参数,例如使用${date}作为任务执行日期的参数值。
    在Spark任务执行时,DataWorks会自动将调度参数替换为实际的参数值,并传递给Spark任务。

    2023-07-30 20:57:00
    赞同 展开评论 打赏
  • 右侧界面定义调度参数 左侧界面引用调度参数,问:调度参数
    答:【调度参数分类】 根据调度参数能否在代码中直接使用可以分为:系统内置变量,自定义参数。 - 系统内置变量可以在代码中直接使用,包括 unknown和unknown - 自定义参数需要在调度参数赋值处,给该变量赋值自定义参数后,在代码中调用变量名。(更多自定义参数取值方式请参考文档 调度参数自定义参数部分。) --- 【调度参数unknown $[..]测试示例】 业务时间选择 2018-01-31 区分调度参数$[yyyymmdd] 与unknown 在调度时候的替换值 --- 【测试调度参数赋值】 --- 【查看参数替换】 --- 【调度参数使用注意事项】 --- 【注意】 - ”定时时间(中括号)”才可以取到具体的时间点(小时/分钟) - 界面直接点击"运行"需要手动给代码变量赋值。 - 若配置调度参数需要检验调度替换的值是否会符合预期,请选择数界面的开发环境冒烟测试。 - 修改过调度参数后请重新保存-提交-开发环境冒烟测试。 - 任务只有在生产环境才会被调度,所以调度参数只有生产环境调度运行后才会被替换 - 开发环境冒烟测试会生成实例!属于调度收费范畴。 --- 【高级运行/运行/开发环境冒烟测试逻辑说明】 - 运行:第一次运行后,您需要手动为该变量赋值常量,第一次赋值会被记录。如果对代码进行修改,该变量依旧使用第一次运行时的赋值。 - 高级运行:高级运行时,您需要手动为当前代码中的变量进行赋值常量,如果修改了代码中的变量,请使用高级运行给变量重新赋值常量。 - 开发环境执行冒烟测试:通过手动选择业务日期模拟节点自动调度的场景,获取当前业务日期下调度参数的替换值。 如果要修改参数赋值,请使用高级运行。 --- 【三种运行按钮关于变量赋值区别】 --- 【PyODPS 2节点可以使用系统定义的调度参数和自定义参数:】 如果PyODPS 2使用系统定义的调度参数,可以直接在页面赋值。 自定义参数需要使用args['参数名']的形式调用,例如print (args['ds']) --- 【调度参数配置案例】 >Q1:跨年跨月跨天跨小时跨分钟调度参数配置

    A1:调度参数配置:year=$[yyyy-15/24/60] month=$[yyyymm-15/24/60] day=$[yyyymmdd-15/24/60] hour=$[hh24-15/24/60] mi=$[mi-15/24/60]
    实现效果:
    定时时间为20210727000500的取到的调度参数如下
    SKYNET_PARAVALUE=year=2021 month=202107 day=20210726 hour=23 mi=50:
    定时时间为20210727003000取到的调度参数如下
    SKYNET_PARAVALUE=year=2021 month=202107 day=20210727 hour=00 mi=15:
    Q2:如何结合调度参数取上个月的最后一天 > >A2:相关语料“结合调度参数取上个月最后一天” > --- 【相关文档:】 - 调度参数配置 - DataWorks:通过业务时间维度来看自定义参数“[ ]”与“{ }”的区别

    【常用调度参数列表】假设定时时间是2022-10-01 00:10:59

    取昨天的年月日:arg=$[yyyymmdd-1] 或arg=$[yyyy-mm-dd-1]或arg=$[yyyy/mm/dd-1]等 调用unknown
    取昨天的年月日时分秒:返回值2022-09-31 00:10:59 需配置两个参数arg1=$[yyyymmdd-1] arg2=$[hh24:mi:ss] 调用'unknown unknown'
    取今天的年月日: arg=$[yyyymmdd]等
    取今天的年月日时分秒:返回值2022-10-01 00:10:59 配置两个参数arg1=$[yyyymmdd] arg2=$[hh24:mi:ss] 调用'unknown unknown'
    取15分钟前的年、月、日、小时、分钟:year=$[yyyy-15/24/60] month=$[yyyymm-15/24/60] day=$[yyyymmdd-15/24/60] hour=$[hh24-15/24/60] mi=$[mi-15/24/60]
    取1小时前的日、小时:day=$[yyyymmdd-1/24] hour=$[hh24-1/24]
    取昨天时间区间:beginDateTime=$[yyyymmdd-1]000000 endDateTime=$[yyyymmdd]000000
    取上一小时时间区间:beginDateTime=$[yyyymmddhh24-1/24]0000 endDateTime=$[yyyymmddhh24]0000
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    ,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-07-12 09:26:06
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载