Azure Data Factory:移除重复行,保留两列组合的唯一行
在Azure Data Factory中基于多列组合移除重复行的解决方法
你之前只按columnA分组肯定不对,要实现的是columnA+columnB组合唯一,给你三个可行方案,按操作复杂度排序:
方案1:用Distinct转换(最直接)
这是ADF数据流专门做去重的组件,操作最简单:
- 在数据流里拖入Distinct转换,连接到你的数据源
- 进入Distinct配置面板,在「键列(Key columns)」里同时选中
columnA和columnB - 直接运行数据流,输出就是两列组合唯一的结果,完全匹配你要的效果
方案2:修正聚合转换的用法
之前的问题出在分组依据只选了一列,调整后就能用:
- 添加聚合转换,在「分组依据」区域同时勾选
columnA和columnB - 在「聚合列」里,分别添加两个输出列,表达式直接写
columnA和columnB(不需要sum、count这类聚合函数,我们只需要保留唯一组合) - 聚合完成后,自动剔除重复的列组合
方案3:用窗口转换(适合需保留原表其他列的场景)
如果后续表会新增其他列,需要保留原始行结构的话用这个:
- 添加窗口转换,在「分区依据」里选
columnA和columnB(按这两列分组) - 添加新列
row_num,表达式写rowNumber()(给每个分组内的行编序号) - 接着加筛选转换,筛选条件设为
row_num == 1,只保留每个分组的第一行 - 最后可以删掉
row_num列,得到目标结果
优先用方案1,省心高效;如果有额外需求再考虑后两种。
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

