Azure Data Factory数据流中如何筛选最新日期的行?
Azure Data Factory数据流筛选最新日期行的解决方案
在ADF数据流的Filter转换里直接用date==max(date)行不通,因为Filter的表达式是逐行计算的,这里的max(date)只能取当前行的日期值,没法拿到全局最大日期。给你两个可行的解决办法:
方法一:聚合转换 + 自连接(查找)
- 给数据流加一个聚合转换,不设置任何分组字段,只新增一个计算字段(比如命名为
max_date),表达式写max(date),这样就能得到全局的最新日期 - 再加一个查找转换,把原数据集和聚合后的数据集做自连接,关联条件设为
date == max_date - 最后通过选择转换去掉冗余的
max_date字段,只保留你需要的原字段就行
方法二:窗口转换 + 筛选(更高效)
- 添加窗口转换,不设置分区键(也就是全局窗口),新增一个窗口列(比如命名为
global_max_date),表达式写max(date) over (),这个表达式会给每一行都带上全局最大日期 - 接着加筛选转换,筛选条件设为
date == global_max_date - 最后可以用选择转换删掉
global_max_date这个临时字段
内容的提问来源于stack exchange,提问作者Jose Angel Martinez Soler
相关产品推荐
相关产品推荐

