使用Azure Data Factory向Snowflake复制Parquet文件遇反斜杠报错求助
解决方案
方案1:直接以Parquet格式加载(推荐)
Snowflake原生支持读取Parquet文件,无需转换为CSV,从根源避免分隔符/转义问题:
- 在ADF复制活动的源配置中,确认文件格式为Parquet;
- 在Snowflake接收器配置中,选择「从暂存文件复制」,并指定文件格式为Parquet(而非CSV);
- 确保Snowflake阶段(Stage)的文件格式设置为Parquet。
方案2:调整Snowflake CSV文件格式参数
若必须转换为CSV加载,需修正转义参数的配置(注意SQL中反斜杠需双转义):
创建自定义CSV文件格式:
CREATE OR REPLACE FILE FORMAT custom_csv_format TYPE = CSV FIELD_DELIMITER = ',' ESCAPE = '\\' ESCAPE_UNENCLOSED_FIELD = '\\' FIELD_OPTIONALLY_ENCLOSED_BY = '"' SKIP_HEADER = 1;
在ADF的Snowflake接收器中,指定使用这个自定义文件格式,让字段被引号包裹,反斜杠被识别为普通字符。
方案3:预处理Parquet中的反斜杠
通过ADF数据流动提前处理含反斜杠的字段:
- 添加「数据流动」活动到复制任务前;
- 使用「派生列」转换,对目标字段执行替换:
replace(Col1, '\\', '\\\\') replace(Col2, '\\', '\\\\')
将单个反斜杠替换为双反斜杠,避免解析时被当成转义符。
方案4:检查ADF复制行为设置
- 确认复制活动的「复制行为」未开启可能干扰格式解析的选项(如「保留层级结构」);
- 若使用CSV格式,确保接收器的「分隔符」「转义符」配置与Snowflake文件格式完全匹配。
内容的提问来源于stack exchange,提问作者Nitin Gupta
相关产品推荐
相关产品推荐

