带参数运行笔记本

目前,使用空格作为分隔符,将传入 ARGUMENTS 字符串中的参数解析到 sys.argv 列表中。

示例:使用参数执行笔记本项目

以下示例使用 ARGUMENTS = 'env prod' 传递两个实参(env 和 prod)。

第一个元素 (sys.argv[0]) 是笔记本文件名,后跟空格分隔的实参。

EXECUTE NOTEBOOK PROJECT "<database_name>"."<schema_name>"."<project_name>"
  MAIN_FILE = 'snow://workspace/<workspace_hash>/path/to/notebook.ipynb' -- Notebook name with full file path
  COMPUTE_POOL = '<compute_pool_name>'
  RUNTIME = '<runtime_version>'    -- For example, V2.2-CPU-PY3.11
  QUERY_WAREHOUSE = '<warehouse_name>'
  ARGUMENTS = 'env prod' -- Can pass in a single string, which can be parsed in the notebook code. Point to the environment configuration.
  REQUIREMENTS_FILE = 'path/to/requirements.txt';

查看所有实参

要检查传递给会话的参数的完整列表,请使用 sys 模块。

import sys
print(sys.argv)

输出示例:

['exampletestSCOS.ipynb', 'env', 'prod']

访问特定实参

参数通过其在列表中的索引进行访问。因为 sys.argv[0] 是笔记本名称,所以第一个用户参数的起始位置为 index[1]

import sys

# Access the first user parameter
first_param = sys.argv[1]
print(first_param)

输出示例:

env

有关完整的语法和参数详细信息,请参阅 EXECUTE NOTEBOOK PROJECT