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

使用Python将CSV文件导入Snowflake表时PUT命令报错如何解决

报错原因
  • PUT是Snowflake客户端命令,仅能通过Snowflake客户端工具(包括官方Python连接器、SnowSQL CLI、Snowpark等)调用,无法在Snowflake Web UI的工作表界面直接执行,这是UI报错的核心原因。
  • Python侧执行报错大概率存在两个问题:一是你写的stage命名顺序写反了数据库和模式,Snowflake三层命名规则为数据库名.模式名.对象名,你写的"SCHEMA"."DATABASE".data_stage顺序错误会导致找不到对应stage;二是如果调用方式错误,没有使用官方Python连接器的原生命令执行逻辑,也会触发报错。
解决步骤
  1. 首先修正stage命名的顺序错误,将所有引用改为"你的数据库名"."你的模式名".data_stage,也可以在连接时提前指定库和模式的上下文,后续直接用stage名调用即可。
  2. 使用Snowflake官方Python连接器执行PUT命令,参考代码如下:
import snowflake.connector

# 替换为你自己的连接参数
conn = snowflake.connector.connect(
    user="你的用户名",
    password="你的密码",
    account="你的账户标识符",
    database="你的数据库名",
    schema="你的模式名",
    warehouse="你的仓库名"
)
cur = conn.cursor()

try:
    # 执行stage创建相关DDL
    cur.execute('drop stage if exists data_stage')
    cur.execute('''
        create stage data_stage 
        file_format = (type = "csv" field_delimiter = "," skip_header = 1)
    ''')
    # 执行PUT命令,本地路径用原始字符串避免转义问题
    put_sql = r"put file://C:/Users/318459/Downloads/Student_marks.csv @data_stage auto_compress=true"
    cur.execute(put_sql)
    # 可选:验证文件是否上传成功
    cur.execute("list @data_stage")
    print("上传成功,已上传文件列表:")
    for file in cur.fetchall():
        print(file[0])
finally:
    cur.close()
    conn.close()
  • 如果你使用Snowpark操作,可直接调用封装好的文件上传接口,代码更简洁:
from snowflake.snowpark import Session

# 替换为你自己的连接参数
connection_params = {
    "account": "你的账户标识符",
    "user": "你的用户名",
    "password": "你的密码",
    "role": "你的角色",
    "warehouse": "你的仓库名",
    "database": "你的数据库名",
    "schema": "你的模式名"
}
session = Session.builder.configs(connection_params).create()

# 直接上传本地文件到stage
session.file.put(
    local_file_name="C:/Users/318459/Downloads/Student_marks.csv",
    stage_location="@data_stage",
    auto_compress=True
)
  1. 注意执行Python脚本的设备必须和CSV文件所在设备为同一台,确保路径可以被本地直接访问,不要在远端服务上执行引用本地路径的PUT命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 10:36:04