如何使用Azure Data Flow完成JSON扁平化解析及表结构转换
实现转换的完整操作步骤
你直接使用Flatten不生效的核心原因是原始Info列是字符串格式的JSON,不是Azure Data Flow可识别的结构化数组类型,需要先完成JSON解析再做展开,完整操作步骤如下:
- 第一步:解析JSON字符串为结构化数组
新增Parse转换,参数配置如下:- 待解析列选择
Info - 解析格式指定为
JSON - 输出结构定义为:
array<struct<key:string,language:string,value:string>>,兼容数组元素里key和language两种不同的键名 - 解析后输出新列命名为
parsed_info
- 待解析列选择
- 第二步:展开数组生成多行
新增Flatten转换,输入为上一步的输出:- 待展开列选择
parsed_info - 展开后每行对应原数组中的一个JSON对象,输出三个字段:
parsed_info.key、parsed_info.language、parsed_info.value
- 待展开列选择
- 第三步:统一键名字段
新增Derived Column转换:- 新建
InfoKey字段,表达式为iif(isNull(parsed_info.key), parsed_info.language, parsed_info.key),自动适配两种不同的键名 - 新建
InfoValue字段,直接取parsed_info.value的值即可
- 新建
- 第四步:清理输出字段
新增Select转换,仅保留Code、InfoKey、InfoValue三个字段,即可得到目标结构的输出。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

