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

Azure DataFlow中byName()与byNames()的用法及适用场景咨询

Azure Data Flow 中 byName() 和 byNames() 函数用法详解

一、byName() 函数

核心功能

按指定列名动态获取单列的值,解决单列动态引用的需求,不用硬编码列名。

语法

byName(columnName: string)

实用示例

  1. 基于参数动态提取列值
    假设数据流里有sales_2022、sales_2023这类按年份命名的列,定义参数targetYear = '2023'后,在派生列中写:
    byName(concat('sales_', $targetYear))
    就能自动匹配并获取sales_2023的列值,后续改年份参数即可切换目标列,不用修改表达式。

  2. 适配不固定列结构的数据源
    如果上游数据源列的顺序经常变,但你需要的列名是固定的(比如customer_id),直接用:
    byName('customer_id')
    不管列在数据集的哪个位置,只要存在这个列名就能拿到对应值,避免因列位置变化导致的报错。

注意事项

如果指定的列名不存在,函数返回null,可以配合isNull()做默认值处理:
isNull(byName('optional_column'), '默认值')

二、byNames() 函数

核心功能

通过通配符匹配批量获取符合规则的列集合,用于多列批量处理场景,省去逐个列名编写的麻烦。

语法

byNames(pattern: string)
支持的通配符:

  • *:匹配任意长度的任意字符
  • ?:匹配单个任意字符

实用示例

  1. 批量聚合多列
    假设有sales_jan、sales_feb、sales_mar等月度销售列,要计算所有月度销售的总和,直接写:
    sum(byNames('sales_*'))
    自动匹配所有以sales_开头的列并求和。

  2. 批量转换列类型
    如果所有以amount_开头的列都是字符串类型,需要转成整数,在派生列中写:
    toInteger(byNames('amount_*'))
    会批量处理所有符合规则的列,不用逐个列写转换表达式。

  3. 批量筛选列
    在选择变换中,要保留所有以customer_开头的列和order_id列,表达式可以写:
    byNames('customer_*') + order_id
    快速组合出需要的数据集结构。

注意事项

byNames()返回的是列集合,不能直接作为单个值使用,必须配合支持集合操作的函数(如sum、avg)或者在选择/派生变换中批量处理。

内容的提问来源于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.11 05:50:24