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

如何在Snowsight Python工作表中通过代码指定Snowpark特定Schema

Snowpark在Snowsight Python工作表中切换Schema的问题解决

问题说明

在Snowsight的Python工作表中编写Snowpark代码时,希望通过代码切换指定Schema(替代UI手动选择操作)。尝试使用session.use_schema('MY_SCHEMA')时触发GENERAL_INVALID_OBJECT_NAME错误,但该Schema在当前激活的数据库下确实存在。

基础可运行代码

import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col

def main(session: snowpark.Session): 
    df_sql = session.sql("SELECT CURRENT_ACCOUNT(), CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA()")
    
    return df_sql

报错测试代码

import snowflake.snowpark as snowpark 
from snowflake.snowpark.functions import col  
def main(session: snowpark.Session): 
    session.use_schema('MY_SCHEMA')     
    df_sql = session.sql("SELECT CURRENT_ACCOUNT(), CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA()")          
    return df_sql 

解决办法

方法1:指定完整的数据库+Schema路径

直接传入数据库与Schema的完整限定名,确保Snowpark能精准定位目标Schema:

session.use_schema('MY_DATABASE.MY_SCHEMA')

方法2:执行原生SQL切换Schema

通过执行USE SCHEMA原生SQL语句,绕开API方法可能存在的上下文识别问题,实现更直接的切换:

session.sql("USE SCHEMA MY_SCHEMA").collect()

验证方式

切换完成后,执行以下代码确认Schema是否成功切换:

result = session.sql("SELECT CURRENT_SCHEMA()").collect()
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:33:14