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

如何通过ADF Data Flow将CSV转换为ADLS中的订单上卷聚合输出?

使用Azure Data Factory Data Flow实现订单数据的上卷聚合(Roll-Up Aggregation)

需求说明

通过ADF Data Flow将指定CSV输入数据转换为ADLS中的目标输出,实现按城市、国家维度的上卷聚合,统计各层级的订单ID数量。

输入数据

order_id,city,country
L10,Sydney,Australia
L11,Annecy,France
L12,Montceau,France
L13,Paris,France
L14,Montceau,Canada
L15,Ste-Hyacinthe,Canada

目标输出数据

COUNTRY,CITY,TOTAL_Order
Australia,Sydney,1
Australia,Total,1
Canada,Montceau,1
Canada,Ste-Hyacinthe,1
Canada,Total,2
France,Annecy,1
France,Montceau,1
France,Paris,1
France,Total,3
Total,Total,6

(注:目标输出中Canada的城市Montréal应为输入中的Montceau,属于笔误,转换将以源数据为准)


具体实现步骤

1. 配置数据集

  • 创建输入数据集:指向存储在ADLS(或其他存储)中的源CSV文件,开启“首行作为表头”选项。
  • 创建输出数据集:指定ADLS中的输出路径,同样配置CSV格式,开启表头输出。

2. 构建Data Flow

2.1 添加源转换

拖入「源」组件,关联输入数据集,确认数据预览能正确读取order_id、city、country三列。

2.2 生成三级聚合分支

需要分别生成城市级、国家级、全局级三个统计分支,再合并结果:

  • 分支1:城市-国家级统计
    拖入「聚合」组件,分组依据选择country和city,添加聚合列TOTAL_Order,表达式为count(order_id),统计每个城市的订单数。
  • 分支2:国家级汇总
    从源组件分支拖入另一个「聚合」组件,仅将country作为分组依据,聚合列TOTAL_Order用count(order_id),同时添加派生列city,固定值为'Total'。
  • 分支3:全局级汇总
    再拖入一个「聚合」组件,不设置任何分组依据,聚合列TOTAL_Order用count(order_id),添加派生列country和city,固定值均为'Total'。
2.3 合并分支数据

拖入「联合」(Union)组件,将上述三个分支的输出接入,确保所有分支的列名、数据类型一致。之后可添加「派生列」组件,将列名重命名为大写的COUNTRY、CITY、TOTAL_Order,匹配目标输出格式。

2.4 写入输出

拖入「接收器」(Sink)组件,关联输出数据集,配置写入模式(按需选择覆盖或追加),完成数据写入。


验证结果

运行Data Flow后,ADLS中的输出文件应与目标格式完全匹配,包含各层级的订单统计数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:10:43