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

Azure Data Factory中Kusto CountOf()函数等效实现及文件名提取方案

在Azure Data Factory中提取文件名最后一个下划线前的字符串

ADF中没有直接等效于KQL countof() 的函数,但可以通过以下两种常用方法实现你的需求:

方法一:使用split() + join()组合

思路是将文件名按下划线分割为数组,排除最后一个元素(即下划线后的后缀/日期部分),再将剩余元素重新用下划线拼接。

示例表达式(假设文件名存储在变量fileName中):

@join(split(variables('fileName'), '_'), '_', 0, sub(length(split(variables('fileName'), '_')), 1))

逻辑说明:

  1. split(variables('fileName'), '_'):将文件名按下划线分割成字符串数组,比如"abc_xyz_20221221.txt"会被分割为["abc", "xyz", "20221221.txt"]
  2. sub(length(...), 1):计算数组长度减1,得到需要保留的元素结束索引(join的endIndex参数为排他值,因此用数组长度减1可以排除最后一个元素)
  3. join(...):将数组中从索引0到结束索引的元素用下划线拼接,得到目标字符串

方法二:通过反转字符串定位最后一个下划线

思路是反转文件名后找到第一个下划线的位置,再换算回原字符串中最后一个下划线的位置,最终截取该位置之前的内容。

示例表达式:

@substring(variables('fileName'), 0, sub(sub(length(variables('fileName')), indexOf(reverse(variables('fileName')), '_')), 1))

逻辑说明:

  1. reverse(variables('fileName')):反转文件名,比如"abc_xyz_20221221.txt"反转后为"txt.12212202_zyx_cba"
  2. indexOf(..., '_'):找到反转后字符串中第一个下划线的位置
  3. sub(length(...), indexOf(...)) -1:换算回原字符串中最后一个下划线的位置(原字符串总长度减去反转后的下划线位置,再减1)
  4. substring(...):从文件名起始位置截取到最后一个下划线之前的内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:38:49