gpt4 book ai didi

azure - 如何根据数据流 ADF 中的条件进行两步排序

转载 作者:行者123 更新时间:2023-12-03 06:12:00 26 4
gpt4 key购买 nike

我正在研究 ADF 数据流,并尝试在源数据中实现两步排序的逻辑。要求是这样的,我有 1 个主键和 2 个日期列:示例 - id、date1 和 date2要求-(i) 如果源文件中存在具有相同 id 的重复数据,则应选择具有最大 date1 的行,(ii) 如果存在具有相同 id 的重复数据,并且它们的 date1 也相同,则应选择具有最大 date2 的行并将其发送到输出。

我尝试在聚合阶段一个接一个地进行两次排序,但目前我从两个重复行中获取随机值,这是错误的。

有人可以帮我满足这个要求吗?谢谢

最佳答案

为了获取相同 id 的最大 date1 和相同 id、date1 组合的最大 date2,您必须首先获取相同 id 和 date1 的最大 date2 值。然后检查 id 列的最大日期1。下面是详细的做法。

  1. 使用源转换从源文件中读取数据。

示例输入

<表类=“s-表”><标题>id日期1日期2 <正文>12023-01-012023-01-0312023-01-022023-01-0222023-01-022023-01-0122023-01-022023-01-02

获取的示例输入包含三列:id、date1 和 date2。

  • 使用聚合转换按 id 和 date1 列对数据进行分组,并计算每个组的 date2 的最大值。这将确保对于每个 id 和 date1 组合,您都能获得 date2 的最大值。您可以在聚合转换中使用以下表达式:

    groupBy(id, date1),
    date2 = max(date2)
  • gif1

    此转换的输出将包含三列:id、date1 和 date2(date2 的最大值)。

    <表类=“s-表”><标题>id日期1日期2 <正文>12023-01-012023-01-0312023-01-022023-01-0222023-01-022023-01-02
  • 使用另一个聚合转换按 id 列对数据进行分组,并计算每个 id 组的 date1 的最大值。这将确保对于每个 id,您都能获得 date1 的最大值。您可以在聚合转换中使用以下表达式:

    groupBy(id),
    date1 = max(date1)
  • gif1

    <表类=“s-表”><标题>id日期1 <正文>12023-01-0222023-01-02
    • 然后使用连接转换根据 id 和 date1 列连接两个聚合转换的输出。

    gif1

    • 使用选择转换从连接转换的输出中选择 id、date1 和 date2 列并删除重复字段。
    <表类=“s-表”><标题>id日期1日期2 <正文>12023-01-022023-01-0222023-01-022023-01-02

    这将确保您获得满足两步排序逻辑的行。

    关于azure - 如何根据数据流 ADF 中的条件进行两步排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76672035/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com