Azure Data Factory数据流中仅保留空数组记录的实现咨询
解决Azure Data Factory数据流筛选特定记录的问题
问题分析
你提供的目标记录(id=2523DC)的custom_checks并非空数组,而是包含一个空对象的数组([{ }]),所以isNull(custom_checks)或判断数组长度的方法会失效——数组本身不为空,长度是1,只是内部对象无任何键值对。
具体解决步骤
- 展开results数组:在数据流中使用Flatten组件展开
results字段,将数组中的每条记录拆分为单独的行。 - 添加过滤条件:在Filter组件中使用以下表达式匹配目标记录:
- 精准匹配指定id+空对象数组:
id == '2523DC' && length(keys(custom_checks[0])) == 0 - 通用匹配(所有
custom_checks数组内全是空对象的记录):every(custom_checks, item -> length(keys(item)) == 0)
- 精准匹配指定id+空对象数组:
逻辑说明
keys()函数会提取对象的所有键名,空对象的键名数量为0,用length()判断即可识别空对象。every()函数会遍历数组中的每个元素,验证所有元素是否都满足“是空对象”的条件,适用于数组包含多个空对象的场景。
内容的提问来源于stack exchange,提问作者koolhyd
相关产品推荐
相关产品推荐

