共用方式為

functions 命令组

注释

此信息适用于 Databricks CLI 版本 0.205 及更高版本。 Databricks CLI 目前处于公共预览阶段。

Databricks CLI 的使用须遵守 Databricks 许可Databricks 隐私声明,包括任何数据使用规定。

Databricksfunctions CLI 中的命令组允许你在 Unity 目录中管理用户定义的函数(UDF)。 函数实现可以是任何 SQL 表达式或查询,并且可以在查询中允许表引用的位置调用它。 在 Unity 目录中,函数与表位于同一级别,因此可以使用窗体 catalog_name.schema_name.function_name对其进行引用。

databricks 函数创建

创建新函数。

重要

这是一项试验功能。

用户必须具有以下权限才能创建函数:

- USE_CATALOG 某个函数的父目录

  • USE_SCHEMACREATE_FUNCTION 在函数的父架构中
databricks functions create [flags]

选项

--json JSON

    内联 JSON 字符串或包含请求正文的 JSON 文件中的 @path。

全局标志

例子

以下示例使用 JSON 文件创建函数:

databricks functions create --json @function-definition.json

以下示例使用内联 JSON 创建函数:

databricks functions create --json '{"name": "my_catalog.my_schema.my_function", "data_type": "INT", "full_data_type": "INT", "return_params": {"parameters": []}, "routine_body": "SQL", "routine_definition": "SELECT 1", "routine_dependencies": {"dependencies": []}, "parameter_style": "S", "is_deterministic": true, "sql_data_access": "CONTAINS_SQL", "is_null_call": false, "security_type": "DEFINER", "specific_name": "my_function"}'

databricks 函数删除

删除与提供的名称匹配的函数。

若要成功删除,用户必须满足以下条件之一:

  • 函数的父目录的所有者
  • 是函数的父架构的所有者,并对其父目录具有 USE_CATALOG 特权
  • 函数本身的所有者,拥有其父目录的 USE_CATALOG 权限,以及其父架构的 USE_SCHEMA 权限
databricks functions delete NAME [flags]

论据

NAME

    函数的完整限定名称(形式为 catalog_name.schema_name.function_name)。

选项

--force

    即使函数为 notempty,也强制删除。

全局标志

例子

以下示例删除函数:

databricks functions delete my_catalog.my_schema.my_function

以下示例强制删除函数:

databricks functions delete my_catalog.my_schema.my_function --force

databricks 函数获取

从父目录和架构中获取函数。

若要使提取成功,用户必须满足以下要求之一:

  • 是Metastore管理员
  • 是该功能的父目录的拥有者
  • USE_CATALOG函数的父目录上具有特权,并且是函数的所有者
  • 具有对函数父目录的USE_CATALOG特权、对函数父架构的USE_SCHEMA特权,以及对函数本身的EXECUTE特权。
databricks functions get NAME [flags]

论据

NAME

    函数的完整限定名称(形式为 catalog_name.schema_name.function_name)。

选项

--include-browse

    是否在响应中包含主体仅可访问其特定元数据的函数。

全局标志

例子

以下示例获取有关函数的信息:

databricks functions get my_catalog.my_schema.my_function

以下示例获取包含浏览信息的函数:

databricks functions get my_catalog.my_schema.my_function --include-browse

databricks 函数列表

列出指定父目录和架构中的函数。

如果用户是元存储管理员,则会在输出列表中返回所有函数。 否则,用户必须具有 USE_CATALOG 目录上的权限和 USE_SCHEMA 架构上的权限,并且输出列表仅包含用户具有 EXECUTE 权限或用户是所有者的函数。 不能保证数组中元素的特定排序。

databricks functions list CATALOG_NAME SCHEMA_NAME [flags]

论据

CATALOG_NAME

    感兴趣函数的父目录名称。

SCHEMA_NAME

    函数的父架构。

选项

--include-browse

    是否在响应中包含主体仅可访问其特定元数据的函数。

--max-results int

    要返回的最大函数数。

--page-token string

    不透明分页令牌根据上一个查询转到下一页。

全局标志

例子

以下示例列出目录和架构中的所有函数:

databricks functions list my_catalog my_schema

以下示例列出了最多 10 个结果的函数:

databricks functions list my_catalog my_schema --max-results 10

以下示例列出了包含浏览信息的函数:

databricks functions list my_catalog my_schema --include-browse

databricks 函数的更新

更新与提供的名称匹配的函数。

只有函数的所有者可以进行更新。 如果用户不是元存储管理员,则用户必须是新函数所有者的组的成员。 用户必须满足以下条件之一:

  • 是Metastore管理员
  • 函数的父目录的所有者
  • 函数的父架构的所有者,并且对其父目录具有 USE_CATALOG 特权
  • 函数本身的所有者,具有对其父目录的USE_CATALOG特权以及对函数父架构的USE_SCHEMA特权。
databricks functions update NAME [flags]

论据

NAME

    函数的完整限定名称(形式为 catalog_name.schema_name.function_name)。

选项

--json JSON

    内联 JSON 字符串或包含请求正文的 JSON 文件中的 @path。

--owner string

    函数的当前所有者的用户名。

全局标志

例子

以下示例更新函数的所有者:

databricks functions update my_catalog.my_schema.my_function --owner someone@example.com

全局标志

--debug

  是否启用调试日志记录。

-h--help

    显示 Databricks CLI、相关命令组或相关命令的帮助。

--log-file 字符串

    一个字符串,表示要将输出日志写入到的文件。 如果未指定此标志,则默认会将输出日志写入到 stderr。

--log-format 格式

    日志格式类型,textjson。 默认值是 text

--log-level 字符串

    一个表示日志格式级别的字符串。 如果未指定,则禁用日志格式级别。

-o, --output 类型

    命令输出类型为 textjson。 默认值是 text

-p, --profile 字符串

    要用于运行命令的 ~/.databrickscfg 文件中的配置文件名称。 如果未指定此标志,并且存在命名为 DEFAULT 的配置文件,则使用该配置文件。

--progress-format 格式

    显示进度日志的格式: defaultappendinplacejson

-t, --target 字符串

    如果适用,要使用的捆绑包目标