在Azure Data Factory数据流中处理嵌套数组生成CSV
Azure Data Flow 嵌套数组转CSV实现方案
操作步骤
第一步:展开嵌套数组(Flatten转换)
添加Flatten转换并连接到已筛选数据的节点,在设置中选择Rows作为Unroll by的目标数组。这一步会把每个子数组拆分为单独的数据行,原有的两个子数组会生成两行数据。第二步:拆分数组元素为独立列(Derived Column转换)
添加Derived Column转换,针对数组的每个索引位置创建对应列:- 列名
RecordID,表达式:Rows[0] - 列名
RecordNumber,表达式:Rows[1] - 列名
IsValid,表达式:Rows[2] - 列名
Remarks,表达式:Rows[3]
若需匹配ADX响应里的动态列名,可结合map(Columns, #item.ColumnName)和unroll实现列的动态生成;固定列数场景下直接按索引取值更高效。
- 列名
第三步:清理冗余字段(可选,Select转换)
添加Select转换,仅保留刚生成的RecordID、RecordNumber、IsValid、Remarks列,移除原Rows数组字段。第四步:输出为CSV(Sink转换)
添加Sink转换,选择Azure Blob Storage作为数据源,格式设置为CSV:- 配置存储账户、容器路径
- 按需勾选Include header(不需要表头可取消)
- 将分隔符设置为空格(匹配你需要的输出格式)
注意事项
- 数组内的不同数据类型(字符串、数字、布尔值)会被Data Flow自动处理,无需额外转换
- 若子数组长度不固定,可通过
size(Rows)判断长度避免索引越界,例如:iif(size(Rows)>=4, Rows[3], '')处理缺失的元素
内容的提问来源于stack exchange,提问作者Pathrudu
相关产品推荐
相关产品推荐

