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

Snowflake写入pandas dataframe时报001003语法错误如何解决

问题排查与解决方案

报错根因

你遇到的语法错误核心由两个原因共同导致:

  1. DataFrame列名与Snowflake表列名格式不匹配:Snowflake端列名是下划线分隔的大写格式(如ORGANIZATION_NAME),但DataFrame列名是带空格的自然语言格式(如Organization Name)
  2. 你设置了quote_identifiers=False,关闭了标识符自动加引号功能,SQL解析时会把列名里的空格当作语句分隔符,读到Organization后的Name时就会抛出语法错误。

NaN值不是本次报错的诱因,write_pandas原生支持将pandas的NaN自动转换为Snowflake的NULL值,无需额外处理。

可行解决方案

方案1:重命名DataFrame列名(推荐)

提前将DataFrame列名重命名为和Snowflake表完全一致的格式,原有写入代码无需改动即可正常运行:

# 列名映射关系,一一对应Snowflake表字段
col_mapping = {
    "Website": "WEBSITE",
    "Organization Name": "ORGANIZATION_NAME",
    "Organization Name URL": "ORGANIZATION_NAME_URL",
    "IPO Status": "IPO_STATUS",
    "Founded Date": "FOUNDED_DATE",
    "Founded Date Precision": "FOUNDED_DATE_PRECISION",
    "Total Funding Amount": "TOTAL_FUNDING_AMOUNT",
    "Total Funding Amount Currency": "TOTAL_FUNDING_AMOUNT_CURRENCY",
    "Total Funding Amount Currency (in USD)": "TOTAL_FUNDING_AMOUNT_CURRENCY_USD",
    "Last Funding Amount": "LAST_FUNDING_AMOUNT",
    "Last Funding Amount Currency": "LAST_FUNDING_AMOUNT_CURRENCY",
    "Last Funding Amount Currency (in USD)": "LAST_FUNDING_AMOUNT_CURRENCY_USD",
    "Last Funding Date": "LAST_FUNDING_DATE",
    "Industries": "INDUSTRIES",
    "Industry Groups": "INDUSTRY_GROUPS",
    "Last Funding Type": "LAST_FUNDING_TYPE",
    "Aberdeen - IT Spend": "IT_SPEND",
    "Aberdeen - IT Spend Currency": "IT_SPEND_CURRENCY",
    "Aberdeen - IT Spend Currency (in USD)": "IT_SPEND_CURRENCY_USD"
}
# 执行列名重命名
df = df.rename(columns=col_mapping)

重命名完成后再执行你原来的write_pandas代码即可正常写入。

方案2:调整写入参数(仅适配列名完全匹配场景)

如果你建表时就使用了和DataFrame完全一致的带空格列名,可以将quote_identifiers参数改为True,让SQL解析时自动给列名加引号,避免空格导致的语法错误。但该方案不适用于你当前的表结构,仅作为拓展参考。

额外优化建议

你当前Snowflake表的金额、数值类字段全部定义为VARCHAR类型,后续如果需要做数值计算、大小比较会非常不便,建议调整对应字段类型为NUMBER类的数值类型,避免数据类型不匹配的隐含问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:24:04