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

Azure Data Factory中无共同列的两个数据集合并方法咨询

在Azure Data Factory中实现无关联列数据集的笛卡尔积合并

你需要的是笛卡尔积合并(即大数据集的每一行与小数据集的每一行进行交叉组合),普通Join(需要关联键)和Union(合并同结构行)确实满足不了这个需求,以下是两种可行方案:

方法一:Data Flow实现(推荐,适配大数据集)

Data Flow是ADF中处理批量数据的高效组件,适合你的数千行大数据集场景:

    1. 分别将小数据集(含name列)和大数据集作为数据源导入Data Flow。
    1. 给两个数据集新增固定关联列:
    • 对大数据集添加「派生列」转换,新增列join_key,赋值为固定值(比如1)。
    • 对小数据集执行同样操作,新增同名的join_key列,值也设为1。
    1. 添加「Join」转换,将两个数据集通过join_key列做Inner Join,并选择保留大数据集的所有字段以及小数据集的name列。
    1. (可选)添加「选择」或「派生列」转换,移除冗余的join_key列。
    1. 将处理后的数据集写入目标存储或数据库,就能得到类似1A、1B、1C、2A、2B、2C的交叉结果。

方法二:Lookup + ForEach组合(适合小数据量场景)

如果大数据集行数不多,也可以用Pipeline活动组合实现,但效率远低于Data Flow:

    1. 用Lookup活动读取小数据集的所有name值,将结果保存为数组变量。
    1. 用另一个Lookup活动读取大数据集的所有行,或者用Copy活动结合迭代器遍历每一行。
    1. 添加嵌套ForEach:外层遍历大数据集的每一行,内层遍历小数据集的name数组,将当前大数据行的字段与name组合后写入目标。

为什么原方法不行?普通Join需要匹配关联列,无共同列时无法建立映射;Union是将同结构的行合并(行数相加),而非交叉组合(行数相乘),因此都不符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:37:01