Azure Synapse Data Flow中如何删除数组对象内的字段
在Azure Synapse Data Flow中从对象数组删除指定字段的实现方法
针对你要从Animals数组对象中删除colour字段的需求,这里提供两种实用的实现方式:
方法一:使用map() + drop()函数(推荐,灵活通用)
这是最简洁且通用的方式,适合任意数量字段的删除操作:
- 在数据流中添加派生列转换
- 选择目标列:如果要覆盖原数组列,就选择
Animals;如果要保留原数据,可新建一列(比如ProcessedAnimals) - 输入以下表达式:
逻辑说明:map(Animals, drop(#item, 'colour'))map(Animals, ...):遍历Animals数组中的每一个对象(#item代表当前遍历到的对象)drop(#item, 'colour'):从当前对象中移除指定的colour字段
运行后就能得到只保留name和location的新数组。
方法二:手动重构对象数组(适合字段固定且数量少的场景)
如果数组内对象的字段固定且数量不多,也可以手动构建新对象数组:
- 同样添加派生列转换
- 输入表达式:
逻辑说明:遍历数组中的每个对象,手动提取需要保留的字段,重新构建新的对象,最后组成新数组。map(Animals, createMap('name', #item.name, 'location', #item.location))
注意事项
- 字段名区分大小写,确保表达式里的字段名和数据源中的完全一致
- 如果需要删除多个字段,可在
drop()函数中添加多个参数,比如drop(#item, 'colour', 'xxx')
内容的提问来源于stack exchange,提问作者DE61
相关产品推荐
相关产品推荐

