首页 > 解决方案 > 在 Azure 数据工厂(数据流)中筛选源数据以获取最新值

问题描述

我的源中有以下数据:

在此处输入图像描述

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

在此处输入图像描述

标签: azure-data-factoryazure-data-factory-2

解决方案


我试过了,请按步骤操作。

第一步:创建一个source(我使用您提供的数据的 csv 文件),RecentDate列应该像“01-04-2020”而不是“04-Jan”,因为“04-Jan”无法排序。投影的设置见图。

第二步:创建一个aggregate,请在配置中选择“电影”一栏,Group By设置Aggregates请看图片。

第三步:创建一个new branch(点击源码右下角的'+')

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

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

希望这些可以帮助你。

以下是所有图片:

图片


更新答案:

以下是如何仅输出最大速率:

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

全部的

第一步:创建一个源。Projection的设置是这样的

资源

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

总计的

第三步:创建聚合,请在Group By配置中选择“电影”一栏,聚合设置如下:</p>

聚合2

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

加入

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

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

如果要输出最小速率,只需在第二步中更改max($$)为。min($$)

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

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


推荐阅读