调用循环容器任务

  • 文檔創建者:Roxy
  • 編輯次數:3
  • 最近更新:Wendy123456 于 2024-06-07
  • 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 中每天的数据,同时通知每次循环的情况,如下图所示:

    1717729187271151.png


    附件列表


    主題: 数据开发-定时任务
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    獲取幫助
    線上支援
    獲取專業技術支援,快速幫助您解決問題
    工作日9:00-12:00,13:30-17:30在线
    頁面反饋
    針對當前網頁的建議、問題反饋
    售前咨詢
    業務咨詢
    電話:0933-790886或 0989-092892
    郵箱:taiwan@fanruan.com
    頁面反饋
    *問題分類
    不能為空
    問題描述
    0/1000
    不能為空

    反馈已提交

    网络繁忙