如何在Snowpark Python工作表中运行GitHub上的自定义Python代码?
在Snowpark Python工作表中运行GitHub上的自定义Python代码
前提准备
- 确认你的Snowflake账户已启用Snowpark,且拥有Python工作表的操作权限
- 确保GitHub上的
function.py为公开可访问状态(私有仓库需要额外配置令牌,新手建议先从公开仓库开始)
步骤1:拉取GitHub上的代码
在Snowpark Python工作表的代码单元格中,用requests库(Snowpark环境默认预装)获取代码:
import requests # 替换为你的GitHub文件原始链接(需点击GitHub页面上的「Raw」按钮获取正确地址) github_raw_url = "https://raw.githubusercontent.com/你的用户名/你的仓库名/main/function.py" response = requests.get(github_raw_url) response.raise_for_status() # 请求失败时直接抛出错误提示 # 将代码写入Snowpark临时目录 with open("/tmp/function.py", "w") as f: f.write(response.text)
步骤2:导入并调用自定义代码
将临时目录添加到Python路径后,即可像导入本地模块一样使用你的代码:
import sys sys.path.append("/tmp") from function import 你的函数名 # 替换为function.py中实际定义的函数名称 # 测试运行(示例:如果函数接收Snowpark DataFrame,可传入你的数据对象) # result = 你的函数名(your_dataframe) # result.show()
关键注意事项
- 链接正确性:必须使用GitHub文件的「原始(raw)」链接,而非网页链接,否则拉取的是HTML代码而非Python源码
- 依赖处理:如果
function.py依赖第三方库,需先在工作表中安装:
该安装仅在当前会话有效,关闭工作表后需要重新安装!pip install 依赖包名称 - 私有仓库适配:若仓库为私有,需在请求中携带GitHub个人访问令牌:
令牌需在GitHub平台生成,仅需授予仓库读取权限即可headers = {"Authorization": "token 你的GitHub个人访问令牌"} response = requests.get(github_raw_url, headers=headers)
内容的提问来源于stack exchange,提问作者Oskar Söderlund
相关产品推荐
相关产品推荐

