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

寻求Synapse Analytics Pipeline条件表达式协助:按CSV文件名分表加载

问题分析与解决方案

错误点排查

  • 文件名前缀匹配错误:表达式中误用了net_new_commission,但目标文件名前缀是gross_new_charges,完全不匹配规则
  • 正则匹配函数误用:contains()仅用于检查字符串是否包含指定子串,不支持正则表达式,需改用matchesPattern()实现正则匹配
  • 日期提取索引错误:substring()的起始位置计算错误,导致无法正确提取文件名中的日期部分
  • 正则未转义特殊字符:.csv中的.是正则通配符,需转义为\.csv才能精确匹配文件后缀

修正后的表达式

@and(matchesPattern(item().name, '^gross_new_charges_202\\d-\\d{2}-\\d{2}\\.csv$'), greaterOrEquals(concat(substring(item().name, 18, 4), substring(item().name, 23, 2), substring(item().name, 26, 2)), '20221105'))

表达式说明

  1. 正则匹配部分:matchesPattern(item().name, '^gross_new_charges_202\\d-\\d{2}-\\d{2}\\.csv$')

    • ^:匹配文件名开头
    • gross_new_charges_202\\d:匹配前缀为gross_new_charges_202后跟任意数字(覆盖2020-2029年的文件)
    • -\\d{2}-\\d{2}:匹配-XX-XX格式的月日
    • \\.csv$:精确匹配.csv后缀并结束匹配
  2. 日期比较部分:greaterOrEquals(concat(substring(item().name, 18, 4), substring(item().name, 23, 2), substring(item().name, 26, 2)), '20221105')

    • substring(item().name, 18, 4):从第19位(索引从0开始)提取4位年份(如2022)
    • substring(item().name, 23, 2):提取2位月份(如11)
    • substring(item().name, 26, 2):提取2位日期(如05)
    • concat()将年月日拼接为YYYYMMDD格式字符串,再与20221105做大于等于比较

验证建议

  • 在Synapse管道的表达式编辑器中,使用Test功能输入测试文件名(如gross_new_charges_2022-11-05.csv、gross_new_charges_2022-10-30.csv)验证表达式返回结果
  • 可添加Set Variable活动,输出item().name和提取的日期字符串,确认索引提取是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:45:19