You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Flow中实现Alteryx的Find and replace功能?

在Azure Data Flow中实现基于映射表的文本替换(替代Alteryx Find and Replace工具)

以下是实现需求的具体步骤,完全在Azure Data Flow中完成:

1. 加载数据源

  • 新建Data Flow,添加两个Source组件:
    • 第一个Source指向待处理的CSV文件1(包含需要替换的目标列,比如Address),确保列类型配置正确。
    • 第二个Source指向映射规则CSV文件2(包含Word和ReplacementWord两列),同样确认字符串类型的列配置无误。

2. 将映射表转换为替换数组

  • 针对文件2的Source输出,添加Aggregate组件:
    • 不设置任何分组键(执行全局聚合)。
    • 添加两个聚合列:
      • 列名:lookupWords,表达式:collect(Word) —— 把所有要查找的词打包成字符串数组
      • 列名:replaceWords,表达式:collect(ReplacementWord) —— 把对应的替换词打包成字符串数组

3. 关联待处理数据与映射数组

  • 添加Join组件:
    • 左输入选择文件1的Source输出,右输入选择聚合后的映射表输出。
    • 选择Cross Join类型,让每条待处理记录都能获取到完整的替换规则数组。

4. 执行批量替换

  • 添加Derived Column组件:
    • 若要覆盖原列,直接选择Address列;若要保留原列,新建列(比如UpdatedAddress)。
    • 输入替换表达式:
      replaceMany(Address, lookupWords, replaceWords)
      
      这个函数会按数组顺序,自动将Address中匹配lookupWords的子串替换为对应的replaceWords值,比如把St.Xyz,NY,100067中的NY替换成NewYork。

5. 输出处理结果(可选)

  • 添加Select组件,按需保留需要的列(比如去掉lookupWords、replaceWords这类中间列)。
  • 添加Sink组件,配置目标存储位置,将处理后的CSV文件输出。

额外注意事项

  • 如果映射规则存在优先级(比如需要先替换更长的词,避免短词替换破坏长词匹配),可以在聚合前添加Sort组件,对文件2的输出按length(Word)降序排序,再执行聚合,确保长词的替换规则优先生效。
  • 若需要正则匹配替换,可改用replaceRegex函数结合循环逻辑,但常规的精准子串替换用replaceMany即可满足需求。

内容的提问来源于stack exchange,提问作者AzSurya Teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:25:45