azure-data-factory - 在 Azure 数据工厂(数据流)中筛选源数据以获取最新值
问题描述
我的源中有以下数据:
我想过滤数据,使输出只包含最近日期的数据。例如:DEF 有 2 个值 2.5, 3-Jan 和 4, 4-Jan。我想要最近日期(1 月 4 日,1 月 4 日)的行,以便输出包含以下结果。我如何在数据流中做到这一点?
解决方案
我试过了,请按步骤操作。
第一步:创建一个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>
第四步:创建连接和设置请看图片
最后一步:创建一个选择并删除两个重复的列('Movie'和'RecentDate'),然后将'Rate'命名为'MaxRate',最后输出接收器。
下面是输出:
Movie,MaxRate,RecentDate
ABC,3,02-01-2020
DEF,6,03-02-2020
如果要输出最小速率,只需在第二步中更改max($$)
为。min($$)
如果要同时输出最大和最小速率,请像上面一样(最大速率流)直到创建select
完成,然后New branch
执行最小速率流直到创建select
完成,最后加入两个选择并删除重复的列。
如果您还有其他问题,请告诉我。
推荐阅读
- javascript - 未捕获的类型错误:$(...)[0].reset 不是函数
- android - 膨胀类 TextView 的错误导致活动无法启动
- java - 通过 JNI 从 Java 代码调用 .net DLL 不返回
- java - 在 Android 的 ArrayList 中添加项目时出错
- c++ - 在 Windows 中配置 CMake 以从命令行使用 clang 以获得现代 OpenMP 支持
- regex - Nginx:通配符 server_name
- java - 模拟外部 Web 服务进行集成测试
- gatsby - 使用 gatsby 和 netlify 在构建时获取后在客户端上保留 api 数据
- .net - 无法访问 Docker for Windows 中的 host.docker.internal
- java - 如果文件在路径中有西里尔字母,则 FileOutputStream 抛出 FileNotFoundException