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

使用SSO认证的Snowflake账户创建Snowpark Session报错解决

解决Snowpark Session未定义及SSO认证下的Session创建问题

你当前用snowflake.connector建立的是普通数据库连接,但Snowpark的核心操作依赖专属的Session对象,这就是你遇到NameError: name 'session' is not defined的原因。下面是两种适配SSO认证的Snowpark Session创建方案:

方案1:复用已有的SSO连接创建Session

如果你已经通过connector完成了SSO认证,可以直接基于这个连接生成Snowpark Session:

import snowflake.connector
from snowflake.snowpark import Session

# 保留你原有的SSO连接代码
con = snowflake.connector.connect(
    user="<username>", 
    account="<account name>",
    authenticator="externalbrowser",
)

# 用现有连接初始化Snowpark Session
session = Session.builder.config({"connection": con}).create()

# 验证Session有效性
print("当前日期:", session.sql("select current_date").collect()[0][0])
print("Snowflake版本:", session.sql("SELECT current_version()").collect()[0][0])

# 现在可以正常调用session.table了
provider_table = session.table("ENVIRONMENT.<view name>")
# 示例:查看表的前5行数据
provider_table.show()

# 最后记得关闭资源
session.close()
con.close()

方案2:直接用Snowpark配置完成SSO认证(推荐)

无需先创建connector连接,直接通过Snowpark的Session构建器配置SSO参数,一步完成认证和Session初始化:

from snowflake.snowpark import Session

# 配置SSO及Snowpark连接参数
connection_params = {
    "user": "<username>",
    "account": "<account name>",
    "authenticator": "externalbrowser",
    # 可选:设置默认仓库、数据库、Schema,后续操作无需写全限定名
    "warehouse": "<你的仓库名>",
    "database": "<你的数据库名>",
    "schema": "<你的Schema名>"
}

# 创建Snowpark Session
session = Session.builder.configs(connection_params).create()

# 验证连接
print("当前日期:", session.sql("select current_date").collect()[0][0])

# 操作目标视图
provider_table = session.table("ENVIRONMENT.<view name>")
# 示例:获取表的列信息
print("表列名:", provider_table.columns)

# 关闭Session
session.close()

重要提示

  • 确保已安装Snowpark Python包:执行pip install snowflake-snowpark-python
  • 替换代码中所有<>包裹的占位符为你的实际账户信息
  • Session创建后,所有Snowpark相关操作(读表、写UDF、执行SQL)都要通过这个session对象进行,不要再用connector的游标
  • 如果设置了默认的数据库和Schema,后续可以直接写session.table("<视图名>"),无需带环境前缀

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:54:26