You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ADF Data Flow过滤数组值及配置问题排查

问题描述

有多份JSON文件,需对其中distributionReason[]数组进行值过滤,目标是当数组中存在code匹配指定值的元素时,将完整的根节点record输出到Sink。当前在ADF Data Flow的Filter和Sink环节遇到问题:

  • Filter环节尝试的条件因数组结构无法生效
  • Sink环节看不到根节点record的内容,无法输出完整记录

示例JSON结构:

{
  "record": {
     "ns": "meta",
     "type": "SW",
       "metadata": {
          "markings": {
             "ns": "meta",
             "redactableData": {
                "ns": "meta",
                "distributionReasons": {
                    "ns": "meta",
                    "distributionReason": [
                         {
                           "num": "1",
                           "ns": "meta",
                           "code": "SW",
                           "description": "SW value"
                         }
                    ]
                }
            }
        }
     }
   }
}

当前Data Flow配置:

  1. Source:已配置对应数据源
  2. Derived Column 1:衍生字段record和distributionReasons,其中distributionReasons取值为record.metadata.markings.redactableData.distributionReasons
  3. Flatten 1:设置Unroll by为record.metadata.markings.redactable.distributionReasons(路径存在拼写错误,应为redactableData)
  4. Filter:尝试过distributionReasons.distributionReason.code == 'SW'和contains(distributionReasons.distributionReason.code,#item == 'SW'),均因数组结构无法生效
  5. Sink:无法在Input Columns中找到根节点record,无法输出完整记录
解决方案

1. 简化转换流程,无需Flatten转换

因为目标是保留完整根record,只需判断数组中是否存在符合条件的元素,不需要展开数组,可直接跳过Derived Column和Flatten步骤。

2. 正确配置Filter条件

使用ADF Data Flow的exists()函数判断数组中是否存在符合条件的元素,条件表达式如下:

exists(record.metadata.markings.redactableData.distributionReasons.distributionReason, #item.code == 'SW')
  • exists()函数接收两个参数:第一个是目标数组的完整路径,第二个是元素判断逻辑(#item代表数组中的单个元素)
  • 该表达式会检查distributionReason数组中是否存在code等于'SW'的元素,存在则保留当前完整记录

3. 配置Sink输出完整根record

  • 在Sink转换的Settings标签页,将Output format设置为JSON
  • 在Mapping标签页,选择Auto map,确保根节点record被自动映射;若Auto map未包含,手动添加映射:将输入列的record直接映射到输出字段
  • 若需要完全保留原始JSON嵌套结构,可在Sink的Settings中开启Preserve hierarchy选项

内容的提问来源于stack exchange,提问作者thichxai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:42:16