在Azure Data Factory数据流中使用contains函数拆分数据
在Azure Data Factory数据流中程序化拆分含指定子串的数据集
直接用ADF数据流里的**条件拆分(Conditional Split)**转换就能实现你要的程序化拆分,完全对应你给出的Pandas逻辑,步骤如下:
- 接入源数据:先通过「源」转换读取你的原始数据集,确保
indicator列已正常加载。 - 添加条件拆分转换:
- 点击源转换的输出,添加「条件拆分」转换。
- 配置第一个分支:
- 分支名称设为「含Weekly的记录」
- 条件表达式写:
contains(indicator, 'Weekly'),这和Pandas里df.indicator.str.contains('Weekly')的逻辑完全一致。
- 处理剩余数据:
- 直接用转换自带的「默认」分支(自动接收所有不满足第一个条件的记录)即可,和手动写
!contains(indicator, 'Weekly')的效果完全相同。
- 直接用转换自带的「默认」分支(自动接收所有不满足第一个条件的记录)即可,和手动写
- 配置输出接收器:
- 给「含Weekly的记录」分支连接一个「接收器」,配置好输出文件的存储路径、文件名和数据集类型,对应Pandas里的
df1。 - 给默认分支连接另一个「接收器」,配置另一组输出参数,对应Pandas里的
df2。
- 给「含Weekly的记录」分支连接一个「接收器」,配置好输出文件的存储路径、文件名和数据集类型,对应Pandas里的
对应Pandas代码的逻辑映射
你的Pandas实现:
df1 = df[df.indicator.str.contains('Weekly')] df2 = df[~df.indicator.str.contains('Weekly')]
ADF里的条件拆分第一个分支就是df1的筛选逻辑,默认分支就是df2的取反逻辑,全程靠规则驱动,完全是程序化的实现方式。
额外优化
如果需要忽略大小写匹配(比如匹配weekly、WEEKLY等),可以把条件改成:
contains(lower(indicator), 'weekly')
对应Pandas里df.indicator.str.contains('Weekly', case=False)的效果。
内容的提问来源于stack exchange,提问作者Jonas Palačionis
相关产品推荐
相关产品推荐

