我是 Azure 数据工厂的新手。我需要以下实现方面的帮助 -
输入:
关键,第 3 列
1,5
2,6
3,7
期望的输出:
关键,第 3 列
1,3
2,6
3,7
这里key=1,col3值替换为3(key的最大值)
我需要将一列数据替换为另一列的最大值。我想获取键列的最大值并将第三列中的值替换为该最大值。这只应针对行 key=1 执行此操作。
我使用了派生列转换和 iif 表达式。但如何取最大值呢?
最佳答案
Max() 或任何聚合函数不能直接在派生列转换中使用。因此,使用窗口变换并取列键的最大值。在派生列转换中使用该值。
我尝试使用示例数据重现此问题,下面是方法。
已获取样本源数据。
img:1 源数据预览
- 窗口转换是在源转换之后进行的。窗口列已选择。名为 max_key 的新列作为列名称。表达式为
max(key)
。
img:2 窗口变换设置
- 将整个表数据中键的最大值分配给max_key列。
img:3 Windows 转换数据预览
- 进行派生列转换。 标记列的表达式为
iif(key=='1',max_key,mark)
img:4 派生列转换设置
- 这里,我尝试分配 key 的最大值来标记,其中 key=1,并将该列的其余值分配为原始标记值。
img:5 派生列转换数据预览。
- 通过这种方式,您可以在派生列转换中使用最大值。
关于azure - 如何获取最大值并将其替换到数据工厂的派生列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74813503/