你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:
Azure 数据工厂
Azure Synapse Analytics
提示
试用 Microsoft Fabric 中的数据工厂,这是一种适用于企业的一站式分析解决方案。 Microsoft Fabric 涵盖了从数据移动到数据科学、实时分析、商业智能和报告的所有内容。 了解如何免费开始新的试用!
数据流在 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 用于第二个表达式函数。 |
| size | 查找数组或映射类型的大小。 |
| slice | 从位置提取数组的子集。 位置从 1 开始。 如果省略长度,则默认为字符串的末尾。 |
| sort | 使用提供的谓词函数对数组进行排序。 该 sort 函数需要将表达式函数中的两个连续元素引用为 #item1 和 #item2。 |
| unfold | 将数组展开为一组行并在每行中重复剩余列的值。 |
| union | 返回两个数组中不同项的联合集。 |