Azure Data Factory:复制活动生成CSV末尾空行移除方法咨询
问题解答
是不是设计如此?
是的,这是复制数据活动处理XLSX转CSV时的默认行为。常见原因有两个:一是XLSX工作表本身包含未使用的空行,复制活动会读取这些行并写入CSV;二是活动在写入最后一行数据后会自动添加换行符,导致打开CSV文件时显示末尾空行。
移除末尾空行的方法
方法1:用数据流替代复制数据活动
- 创建数据流,以XLSX为源,添加过滤器组件,设置过滤条件为「至少有一列不为空」(例如
trim(col1) != '' || trim(col2) != '',根据实际列名调整),过滤掉全空的行。 - 配置CSV接收器输出处理后的数据,生成的CSV就不会有末尾空行。
方法2:复制后添加自定义处理步骤
复制数据活动完成后,添加自定义活动调用脚本去除空行,比如用Python脚本:
input_path = "<你的CSV文件路径>" output_path = "<处理后的输出路径>" with open(input_path, 'r', encoding='utf-8') as f: content = f.read().rstrip('\n') with open(output_path, 'w', encoding='utf-8') as f: f.write(content)
可以把这个脚本封装成Azure函数,或者在数据工厂的自定义活动中直接运行(需配置对应运行环境)。
方法3:限定XLSX源的读取范围
如果XLSX中没有实际空行,只是复制活动读取了超出数据的区域,可以在复制活动的源设置里,指定具体的单元格范围(例如Sheet1$A1:C50),只读取有数据的部分,避免读取到工作表末尾的空行。
内容的提问来源于stack exchange,提问作者Prawin
相关产品推荐
相关产品推荐

