场景 | 上游 | 下游 | 引用方式 |
Notebook → Notebook | Notebook | Notebook | dlcutils.jobs.taskValues.set/get |
Notebook → SQL | Notebook | SQL | {{tasks.<name>.values.<key>}} 在任务参数中引用 |
SQL → Notebook | SQL | Notebook | {{tasks.<name>.output.rows / first_row / first_row.<col>}} 在任务参数中引用 |
my_value = "example_value"dlcutils.jobs.taskValues.set(key='my_value', value=my_value)
value = dlcutils.jobs.taskValues.get(taskKey='upstream_task_name',key='my_value',debugValue='debugValue')print(value)# 在 Studio 调试运行时输出 debugValue# 在 Workflow 调度运行时输出 example_value
dlcutils.jobs.taskValues.get 仅在 Workflow 调度运行场景下能取到上游 set 的值;Studio 调试运行返回 debugValue。dlcutils.jobs.taskValues.set(key='favorite_food', value='apple')
task_param = {{tasks.<上游 Notebook 任务名>.values.favorite_food}}
SELECT '${task_param}' AS food;-- 结果: apple
SELECT 1 AS col_a, 2 AS col_b, 3 AS col_cUNIONSELECT 4, 5, 6UNIONSELECT 7, 8, 9;
引用 | 含义 | 示例返回 |
{{tasks.<name>.output.rows}} | 全部行(JSON 数组) | [{"col_a":1,"col_b":2,"col_c":3}, ...] |
{{tasks.<name>.output.first_row}} | 第一行(JSON 对象) | {"col_a":1,"col_b":2,"col_c":3} |
{{tasks.<name>.output.first_row.<col>}} | 第一行指定列 | 1 |
param_value = dlcutils.widgets.get('task_param')print(param_value)# [{"col_a":1,"col_b":2,"col_c":3}, ...]
{{tasks.<上游 SQL>.output.rows}}{{tasks.<上游 Notebook>.values.<key>}}
阶段 | 行为 |
调度判断 | 直接失败。 |
错误信息 | 执行失败,失败原因展示:无法解析引用:由于任务"upstream_name"未在运行范围内,因此无法访问其输出。 |
错误码 | 获取上游传递参数失败。 |
重跑范围 | 行为 |
仅下游 | 使用上次成功运行结果中的参数。 |
包含上游 | 上游重新运行后,下游使用最新结果。 |
dlcutils.jobs.taskValues 仅在 Notebook 任务中使用;SQL 任务通过 output.rows 输出。output.rows 最多 1000 行 / 48 KB;超出部分被截断。dlcutils.jobs.taskValues.set 设置了参数,但下游报错获取不到?dlcutils.jobs.taskValues.set 中 key 与下游引用的 key 大小写一致。{{tasks.<上游 SQL>.output.rows}}。SQL 任务输出的每一行作为一次循环。详见 For Each 循环任务。文档反馈