共用方式為

映射数据流中的数组函数

适用于:Azure 数据工厂 Azure Synapse Analytics

数据流在 Azure 数据工厂管道和 Azure Synapse Analytics 管道中都可用。 本文适用于映射数据流。 如果你不熟悉转换,请参阅介绍性文章: 使用映射数据流转换数据

本文提供有关映射数据流中 Azure 数据工厂和 Azure Synapse Analytics 支持的数组函数的详细信息。

数组函数列表

数组函数对属于数组的数据结构执行转换。 特殊关键字用于访问数组元素和其索引:

  • #acc 表示要在减少数组时包含在单个输出中的值。
  • #index 表示当前数组索引以及数组索引号 #index2, #index3 ...
  • #item 表示数组中的当前元素值。
数组函数 任务
array 创建项的数组。 所有项应属于同一类型。 如果未指定任何项,则默认值为空字符串数组。 与 [] 创建运算符相同。
at 查找数组索引处的元素。 索引从 1 开始计算。 超出边界索引会导致 null 值。 给定键时,在映射中查找值。 如果未找到密钥,则返回 null。
contains 如果所提供的数组中的任何元素在提供的谓词中计算结果为 true,则返回 true。 该contains函数需要引用谓词函数中的一个元素为#item
distinct 返回数组中的相异项集。
except 从另一组删除重复项中返回一个数组的差异集。
filter 将元素从不符合提供的谓词的数组中筛选出来。 该filter函数需要引用谓词函数中的一个元素为#item
find 从与条件匹配的数组中查找第一项。 它采用一个 filter 函数,可在其中将数组中的项寻址为 #item。 对于深度嵌套的映射,可以通过使用 #item_n(#item_1, #item_2...) 表示法引用父映射。
flatten 将数组或数组平展为单个数组。 原子项数组将按原样返回。 最后一个参数是可选的,默认为 false,表示以递归方式平展多个层。
in 检查某个项是否在数组中。
intersect 返回两个数组中不同项的交集。
map 使用提供的表达式将数组的每个元素映射到新元素。 该 map 函数需要对表达式函数中的一个元素的引用作为 #item
mapIf 有条件地将数组映射到相同或更小长度的另一个数组。 这些值可以是任何数据类型,包括 structTypes。 它接受一个映射函数,你可以将数组中的项作为#item来寻址,而当前索引作为#index。 对于深度嵌套的映射,可以通过使用 #item_[n](#item_1, #index_1...) 表示法引用父映射。
mapIndex 使用提供的表达式将数组的每个元素映射到新元素。 该 map 函数需要对表达式函数 #item 中的一个元素的引用和对元素索引的引用作为 #index
mapLoop 从 1 到某个长度进行循环,以创建具有该长度的数组。 它接受一个映射函数,您可以在其中将数组中的索引表示为 #index。 对于深度嵌套的映射,可以通过使用 #index_n(#index_1, #index_2...) 表示法引用父映射。
reduce 累积数组中的元素。 该reduce函数期望接收一个累加器的引用,以及作为#acc#item的第一个表达式函数中的一个元素。 它期望结果值 #result 用于第二个表达式函数。
大小 查找数组或映射类型的大小。
slice 从位置提取数组的子集。 位置从 1 开始。 如果省略长度,则默认为字符串的末尾。
sort 使用提供的谓词函数对数组进行排序。 该 sort 函数需要将表达式函数中的两个连续元素引用为 #item1#item2
unfold 将数组展开为一组行并在每行中重复剩余列的值。
union 返回两个数组中不同项的联合集。

其他可用函数