Azure Data Factory中按语言优先级实现条件排序的需求
在Azure Data Factory数据流中按语言优先级筛选唯一ID记录
需求说明
给定包含id、language、name三列的数据集,同一id对应多行不同语言的名称记录,需按**German(最高)→ English → French → 其他语言(最低)**的优先级,为每个id仅保留优先级最高的一行记录。
示例输入
id, language, name 123, German, Blume 123, English, Flower 123, Spanish, Flora 456, Netherlands, Hoos 456, Spanish, casa 456, English, House
示例输出
123, Blume 456, House
数据流实现步骤
- 源数据集:连接目标输入数据源,确保正确读取
id、language、name三列。 - 派生列转换:新增
lang_rank列,通过条件表达式将语言映射为优先级数值(数值越小优先级越高):
未指定的语言统一设为99(最低优先级)。iif(language == 'German', 1, iif(language == 'English', 2, iif(language == 'French', 3, 99) ) ) - 窗口转换:按
id分组,在每个分组内计算最小优先级值:- 分区键:选择
id - 聚合列:添加
min(lang_rank),命名为min_rank
- 分区键:选择
- 筛选转换:保留
lang_rank == min_rank的行,此时每个id仅剩下优先级最高的记录。 - 选择转换:移除
lang_rank和min_rank列,只保留id和name列,得到最终结果。
内容的提问来源于stack exchange,提问作者Julian
相关产品推荐
相关产品推荐

