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

如何在ADF中获取ADLS Gen2静态CSV/Parquet文件行数并传递参数

针对ADLS Gen2中CSV/Parquet文件获取行数的ADF实现方案

一、CSV文件的实现方式

有两种轻量且实用的方案:

1. Lookup活动直接查询

  • 配置一个指向目标CSV文件的Azure ADLS Gen2数据集,若文件有表头则勾选“第一行作为标题”。
  • 添加Lookup活动,在源设置中切换到“查询”模式,输入统计行数的SQL语句:
    SELECT COUNT(*) AS total_rows FROM OPENROWSET(BULK '@{dataset().fileName}', FORMAT = 'CSV', FIRSTROW = 2) AS csv_data
    
    (注:无表头的文件请将FIRSTROW = 2改为1)
  • 活动执行后,通过表达式@activity('你的Lookup活动名称').output.firstRow.total_rows即可获取总行数,直接传递给后续活动作为参数。

2. Data Flow聚合统计

  • 创建映射数据流,源指向目标CSV文件。
  • 添加聚合转换,不设置分组规则,直接添加聚合列row_count,聚合函数选择count(*)。
  • 在数据流设置页启用“单条行输出”,管道中调用该数据流后,可通过@activity('数据流活动名称').output.runStatus.outputRows获取行数,也可将聚合结果写入临时文件后用Lookup读取。

二、Parquet文件的实现方式

Parquet为列存格式,无法直接用Lookup的简单SQL查询,常用方案如下:

1. Data Flow聚合统计(无依赖通用方案)

  • 创建映射数据流,源指向目标Parquet文件(ADLS Gen2数据集)。
  • 添加聚合转换,不分组,添加聚合列row_count,函数选count(*)。
  • 启用“单条行输出”,管道调用数据流后,通过@activity('数据流活动名称').output.runStatus.outputRows获取行数,或把聚合结果写入临时文件后用Lookup读取。

2. Synapse外部表查询(依赖Synapse服务)

  • 若ADLS已链接到Azure Synapse Analytics,可创建外部表指向Parquet文件,再用Lookup活动执行SELECT COUNT(*) AS total_rows FROM external_table,获取行数后传递参数。

三、部署难度对比

  • CSV的Lookup方案最易部署:无需额外创建数据流或依赖其他服务,仅需在现有管道中添加Lookup活动,配置好数据集和SQL语句即可完成,调试、维护成本极低。
  • Parquet的通用无依赖方案为Data Flow,但需创建数据流、配置聚合转换,步骤比CSV的Lookup多;若用Synapse外部表方式,还需额外配置Synapse链接与外部表,部署复杂度更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:18:20