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

Azure Data Flow键值列展平与解析异常问题求助

排查Azure Data Flow解析键值JSON丢失key列的问题

核心问题定位

原始数据格式为{"key":"rate1","value":"123"}-{"key":"rate2","value":"456"},本质是多个独立JSON对象用-分隔,Parse组件仅输出value列,大概率是拆分、展平或解析环节的配置疏漏。

分步排查与修正

1. 校验派生列的拆分逻辑

  • 确认派生列使用split()函数按-拆分原始字段,示例:split(原始字段名, '-')
  • 检查派生列预览:需得到包含两个完整JSON字符串的数组,如["{\"key\":\"rate1\",\"value\":\"123\"}", "{\"key\":\"rate2\",\"value\":\"456\"}"],若拆分后元素格式异常(如多余引号、转义错误),会直接影响后续解析。

2. 检查展平(Flatten)组件配置

  • 展开方式必须选择Array,并指定拆分后的数组字段作为展开对象
  • 展平后预览应显示两行独立的JSON字符串(每行对应一个键值对象),若展平后数据结构错误,后续Parse无法识别完整JSON结构。

3. 修正Parse组件的关键设置

  • JSON路径:务必设置为$(表示解析整个输入的JSON对象),若误设为$.value,只会提取value字段,丢失key
  • 输出列映射:手动添加key和value列,根据数据类型设置为字符串(或对应类型),确保映射关系正确
  • 若Parse预览仍仅显示value,检查输入的JSON字符串是否存在格式缺陷(如key字段引号缺失、隐性特殊字符)

4. Snowflake数据源前置校验

  • 确认原始字段为字符串类型,若存在隐性空格/换行,在派生列先做清洗:trim(原始字段名)
  • 在Snowflake中直接验证数据有效性,排除数据源问题:
    SELECT 
        PARSE_JSON(value):key::STRING AS key,
        PARSE_JSON(value):value::STRING AS value
    FROM TABLE(SPLIT_TO_TABLE(原始表.原始字段, '-'));
    
    若Snowflake能正常解析,问题出在Data Flow配置;若Snowflake也无法提取key,说明原始数据存在格式问题。

快速验证步骤

  1. 在派生列后添加调试断点,确认拆分后的数组格式正确
  2. 展平后添加断点,确认每行是完整的单个JSON对象
  3. 在Parse组件中选择Detect schema自动识别结构,若自动识别不到key,手动指定JSON路径为$并添加key列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:10:26