Compartir a través de

映射数据流中的数组函数

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

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

以下文章详细介绍了映射数据流中 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 查找数组中与条件相匹配的第一项。 它采用筛选器函数,你可以在其中将数组中的项作为 #item 进行寻址。 对于深层嵌套的映射,可使用 #item_n(#item_1, #item_2...) 表示法引用父映射。
flatten 将一个或多个数组平展成单个数组。 原子项数组将按原样返回。 最后一个参数是可选的,默认为 false,表示以递归方式平展多个层。
in 检查某个项是否在数组中。
intersect 返回 2 个数组中不同项的交集。
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 返回 2 个数组中不同项的并集。