如何使用DataFlow将Blob存储中API返回的JSON解析为CSV?
使用DataFlow解析Blob Storage中的JSON并转换为CSV
前提条件
- API返回的JSON文件已存储在Blob Storage容器中
- 具备DataFlow(以Azure Data Factory DataFlow为例)的操作权限
步骤1:配置Blob数据源
- 新建DataFlow,添加Blob存储源,指定存储JSON文件的容器及文件路径
- 数据源格式选择
JSON,读取模式设为单文档(多文件场景可选多文档),确保完整读取JSON层级结构
步骤2:拆解JSON嵌套结构
需要逐层展开嵌套的数组,提取目标数据:
- 第一步添加展开转换:选择
reports字段,设置展开模式为展开到行,将每个report对象拆分为独立行 - 第二步再次添加展开转换:选择
data.rows字段,将每一条数据记录拆分为独立行
步骤3:映射维度与指标到目标列
通过派生列转换,将JSON中的数组值映射为指定列名:
- 维度映射(对应
columnHeader.dimensions的顺序,匹配rows.dimensions数组索引):- 派生列
dimension1:dimensions[1](对应ga:dimension1,数组第2个元素) - 派生列
dimension2:dimensions[0](对应ga:dimension2,数组第1个元素) - 派生列
dimension4:dimensions[2](对应ga:dimension4,数组第3个元素) - 派生列
dimension6:dimensions[3](对应ga:dimension6,数组第4个元素)
- 派生列
- 指标值映射:
- 派生列
metric_value:metrics[0].values[0](提取第一个指标的数值)
- 派生列
步骤4:筛选目标列
添加选择转换,仅保留dimension1、dimension2、dimension4、dimension6、metric_value这5列,移除所有无关字段
步骤5:配置CSV输出
- 添加Blob存储接收器,指定CSV文件的存储容器及输出路径
- 格式选择
DelimitedText(CSV),设置分隔符为逗号,,勾选包含表头选项 - 确认列映射完全匹配目标表头
步骤6:运行DataFlow
将DataFlow添加到管道并触发运行,完成后即可在指定Blob路径下生成符合要求的CSV文件
示例CSV输出
dimension1,dimension2,dimension4,dimension6,metric_value Australia,Hong Kong,HKNG,not set,1 Australia,Malaysia,KL,not set,1
内容的提问来源于stack exchange,提问作者Aman Singh
相关产品推荐
相关产品推荐

