我有两个数组,分别包含键和值:数组1["key1", "key2", "key3"]
和数组2["value1", "value2", "value3"]
通过ADF数据流表达式,我可以使用keyValues
函数用这两个数组构造一个键值Map:
keyValues(["key1", "key2", "key3"],["value1", "value2", "value3"])
这将返回如下结果:
["key1" -> "value1", "key2" -> "value2", "key3" -> "value3"]
我想在一个管道内构造相同的键值Map,而不是数据流,但是keyValues
函数在管道表达式中不可用。如何在Azure数据工厂/ Synapse Studio上构造带有管道表达式的键值Map?
1条答案
按热度按时间fzwojiic1#
没有直接的方法可以像在数据流中那样使用管道表达式生成器来创建键值对。以下是在ADF管道中生成所需键值对的一种方法:
req
是一个变量,我们希望在其中存储最终的键值对。for each
中,我已经使用项目值@range(0,length(pipeline().parameters.keys))
来生成索引。temp
的变量,对req
的当前值和当前迭代的动态构建的键值对应用并集。temp
值更新每次迭代的req
变量值,即@variables('temp')
:指令集
**注意:**ADF管道中不支持对象类型变量。无论何时要使用此对象(存储为字符串),都可以使用
@json()
函数将其转换为对象类型