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

Snowflake存储过程中snowpark-python版本异常问题求助

Snowpark Python存储过程版本不匹配问题解决办法

核心问题

部署存储过程时未指定snowflake-snowpark-python版本,Snowflake默认调用1.0.0旧版本,而explode()函数仅在1.4.0及以上版本提供,导致执行报错。

解决步骤

1. 创建存储过程时明确指定版本

在创建存储过程的SQL中,通过PACKAGES参数指定所需的1.4.0版本:

CREATE OR REPLACE PROCEDURE YOUR_PROCEDURE_NAME()
RETURNS VARCHAR
LANGUAGE PYTHON
RUNTIME_VERSION = '3.8'
PACKAGES = ('snowflake-snowpark-python==1.4.0')
HANDLER = 'your_handler_function'
AS
$$
from snowflake.snowpark import Session
from snowflake.snowpark.functions import explode, col

def your_handler_function(session: Session):
    # 示例:使用explode处理数组列
    df = session.table("TARGET_TABLE").select(explode(col("ARRAY_COLUMN")).alias("EXPLODED_VALUE"))
    df.collect()
    return "执行完成"
$$;

2. 验证版本是否生效

执行以下SQL查看存储过程的包配置:

SHOW PROCEDURES LIKE 'YOUR_PROCEDURE_NAME';

在返回结果的PACKAGES列中,确认已包含snowflake-snowpark-python==1.4.0。

3. 本地与部署版本保持一致

确保本地开发环境安装的版本和部署版本一致,避免开发与生产环境差异:

pip install snowflake-snowpark-python==1.4.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:42:07