You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse中For Each活动传递子数组给Notebook的方法问询

在Azure Synapse For Each活动中传递子数组给Notebook的解决方案

可以实现,但因为Synapse Notebook参数不支持直接传入数组类型,需要通过JSON字符串中转的方式来处理,具体步骤如下:

1. 在For Each活动中把数组转为字符串传递

在For Each活动的Notebook参数配置里,使用Synapse表达式将当前迭代的子数组转为JSON字符串:

  • 假设你的For Each输入是一个包含子数组的集合(比如[["id1", "name1"], ["id2", "name2"]]),每个迭代的item()就是单个子数组
  • 在Notebook的参数值中填写:@string(item())
    这个表达式会把子数组序列化为标准的JSON字符串,比如["id1", "name1"]会变成"[\"id1\",\"name1\"]"

2. 在Notebook中解析字符串回数组

根据你使用的Notebook语言,把传入的字符串解析回数组:

PySpark Notebook示例

import json
# 获取传入的字符串参数
sub_array_str = dbutils.widgets.get("sub_array_param")
# 解析为数组
sub_array = json.loads(sub_array_str)
# 验证结果
print(sub_array)  # 输出: ['id1', 'name1']

Scala Notebook示例

import scala.util.parsing.json.JSON
// 获取传入的字符串参数
val subArrayStr = dbutils.widgets.get("sub_array_param")
// 解析为数组(根据实际类型调整,这里以String列表为例)
val subArray = JSON.parseFull(subArrayStr).get.asInstanceOf[List[String]]
// 验证结果
println(subArray)  // 输出: List(id1, name1)

3. 关键注意事项

  • @string()表达式会自动处理子数组中的特殊字符(比如引号、换行符)的转义,无需手动处理
  • 如果子数组是嵌套结构(比如数组里包含对象或更深的数组),这种方法同样适用,解析时只需对应调整目标类型即可

内容的提问来源于stack exchange,提问作者Aditya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:31:02