在 Azure 数据工厂(数据流)中筛选源数据以获取最新值

Filter source data in Azure Data Factory (Data Flow) to get most recent values

我的源中有以下数据:

我想过滤数据,使输出只包含最近日期的数据。 例如:DEF 有 2 个值 2.5, 3-Jan 和 4, 4-Jan。我想要具有最近日期 (4, 4-Jan) 的行,以便输出将包含以下结果。我如何在数据流中做到这一点?

我试过了successfully.Please按步骤操作

第一步: 创建一个 source(我将 csv 文件与您提供的数据一起使用),RecentDate 列应该类似于“01-04-2020”而不是“04-Jan”,因为“04-Jan”可以不被排序。 Projection设置见图

第二步: 创建一个aggregate,请在Group By配置中选择'Movie'列,Aggregates的设置请看图

第三步: 创建一个 new branch(单击源代码右下角的“+”)

第四步: 创建join和设置请看图片

最后一步: 创建一个 select 并删除两个重复的列('Movie' 和 'RecentDate')然后输出 sink.

希望这些可以帮到你。

以下是全部图片:

image


更新答案:

下面是如何只输出最大速率:

这是我的测试数据: Movie,MaxRate,RecentDate ABC,3,02-01-2020 DEF,2.5,03-02-2020 DEF,4,04-01-2020 DEF,6,03-02-2020 这是总流量图:

total

首先step:create一个source.The这样的投影设置

source

第二步:创建聚合,请在Group By配置中选择'Movie'和'RecentDate'列,Aggregates设置如下:

aggregate

第三步:创建聚合,请在Group By配置中选择'Movie'列,Aggregates设置如下:

aggregate2

第四步:创建连接和设置请看图

join

最后一步:创建一个 select 并删除两个重复的列('Movie' 和 'RecentDate') 然后将'Rate'命名为'MaxRate',最后输出sink。

输出如下: Movie,MaxRate,RecentDate ABC,3,02-01-2020 DEF,6,03-02-2020

如果要输出min rate,只需在第二步中将max($$)更改为min($$)即可。

如果你想同时输出最大和最小速率,请像上面那样(最大速率流)直到创建select完成然后New branch做最小速率流直到创建select 完成,最后加入两个 select 并删除重复的列。

如果您还有其他问题,请告诉我。