适用于:
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 | 返回两个数组中不同项的联合集。 |