反馈已提交

网络繁忙

调用循环容器任务

  • 文档创建者:Roxy
  • 历史版本:2
  • 最近更新:Roxy 于 2023-08-08
  • 1. 概述

    1.1 应用场景

    使用SparkSQL构建日期列并循环取数 中使用构建的日期序列进行 API 取数。

    如果用户将使用「循环容器」进行 API 取数作为最小调度单位,有多个前置的参数输出、调度期不同的任务可能都会调用执行这个调度单位任务。每次都重复制作任务太过复杂。

    1.2 实现思路

    此时可以使用「调用任务」的方式,将「循环容器」进行 API 取数这个任务作为一个子任务,其他任务直接调用该任务即可,不需要在每个任务里重复制作。

    例如 使用SparkSQL构建日期列并循环取数 2.2 节已经创建好了日期序列,则可以新建一个定时任务作为子任务-循环容器取数。

    2. 操作步骤

    由于被调用任务需要循环执行,而循环容器需要前置输入遍历参数,所以无法直接用已经创建的日期序列参数,需要在新的定时任务中重新设置日期序列参数便于循环容器遍历

    2.1 获取父任务传递的参数

    首先需要参考使用SparkSQL构建日期列并循环取数 2.1 2.2 节构建日期序列。

    然后新建定时任务作为子任务,并新建「数据转换」节点,使用 SparkSQL 算子获取父任务传递的参数,并用函数处理成多行数组,如下图所示:

    注:由于被调用任务没有和调用任务有连线上下游关系,因此预览数据会由于参数无法加载而失效,但不必担心,并不影响实际任务的执行。

    SparkSQL 语句:

    select explode(split('${xunhuanrongqi}', ',')) as xunhuanriqi

    将输出值作为参数输出,命名为和使用SparkSQL构建日期列并循环取数 2.2 节日期序列相同的参数,如下图所示:

    2.2 设置循环容器

    参考使用SparkSQL构建日期列并循环取数 2.3 节设置循环容器内的节点,如下图所示:

    2.3 调用任务

    保存子任务后,进入父任务,在使用SparkSQL构建日期列并循环取数 2.2 节生成的日期序列后新建「调用任务」节点,选择创建好的子任务作为调用任务,由于子任务需要使用日期序列参数,因此勾选「将当前任务的参数传递给子任务」,并选择日期序列参数,如下图所示:

    设置完成后即可执行任务。

    2.3 效果查看

    运行任务,可以看到根据日期序列取出 API 中每天的数据,同时通知每次循环的情况,如下图所示:

    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持