使用ADF Power Query导出CSV时出现多余行问题排查
ADF Power Query聚合后CSV输出出现空值行的排查与解决
在Azure Data Factory(ADF)管道中使用Power Query块对数据聚合转换后,将结果以CSV格式写入ADLS Gen2存储时,输出文件出现一行COL1为空的多余数据:
COL1, COL2 v1, 500 v2, 800 v3, 900 ,1200但ADF Studio的Power Query编辑器中未显示该行,且聚合用的
kantoor1_referentie(即COL1)列不存在空值,使用的Power Query语句如下:let Source = #"StagingHerverkoopAanbod", #"Grouped rows" = Table.Group(Source, {"kantoor1_referentie"}, {{"Aantal Panden", each Table.RowCount(_), Int64.Type}}), #"Sorted rows" = Table.Sort(#"Grouped rows", {{"kantoor1_referentie", Order.Ascending}}), #"Added custom" = Table.TransformColumnTypes(Table.AddColumn(#"Sorted rows", "Timestamp", each DateTime.LocalNow()), {{"Timestamp", type datetime}}) in #"Added custom"
排查与解决步骤
清洗数据源隐形无效值
编辑器预览仅加载部分数据,实际数据源中kantoor1_referentie可能存在空格、换行符等隐形空白字符串(而非NULL)。在Group操作前添加清洗步骤:#"Trimmed Text" = Table.TransformColumns(Source, {{"kantoor1_referentie", Text.Trim, type text}}), #"Filtered Blanks" = Table.SelectRows(#"Trimmed Text", each not Text.IsEmpty([kantoor1_referentie]))将上述步骤插入到
Source和#"Grouped rows"之间,彻底过滤无效值。验证完整输出数据
不要仅依赖编辑器预览,在ADF中临时添加“复制数据”活动,将Power Query输出写入Parquet格式文件(保留数据类型,避免CSV的格式混淆),检查是否真的存在空值行。检查CSV写入配置
确认“复制数据”活动的CSV设置:- 关闭保留空行选项
- 核对列分隔符是否正确,避免因分隔符识别错误导致列错位
- 确认写入表头配置正常,防止表头异常引发数据偏移
添加最终强制过滤
在Power Query末尾添加过滤步骤,强制剔除kantoor1_referentie为空的行:#"Filtered Final Blanks" = Table.SelectRows(#"Added custom", each not Text.IsNullOrEmpty([kantoor1_referentie]))将原语句的
in #"Added custom"替换为in #"Filtered Final Blanks"
内容的提问来源于stack exchange,提问作者Michael Anckaert
相关产品推荐
相关产品推荐

