用户定义的函数(udf)的联合目录

重要的

这个特性是在公共预览和需要砖运行时13.2及以上。

砖注册定制函数提供了sql native的语法模式由统一目录。标准创建函数SQL语法支持统一目录计算砖。在砖pro或serverless SQL仓库和运行时13.2及以上,可以在函数注册统一目录包含Python代码。

请注意

从查询视图注册使用udf必须使用支持计算。典型的SQL仓库和砖运行时版本13.1及以下不能解决视图包含udf注册统一目录。

完整的SQL语言参考,看看创建函数(SQL和Python)

信息如何统一目录管理权限功能,看看创建函数

重要的

Python udf注册为函数统一目录不同范围和支持笔记本或SparkSession PySpark udf范围。看到用户自定义标量函数——Python

定制的SQL函数统一目录

当您创建一个SQL函数计算配置为使用统一目录,该函数注册到当前活跃的默认模式。下面的例子演示了语法你可以使用声明一个目标目录和模式的新功能:

创建函数target_catalogtarget_schemaroll_dice()返回INT语言SQL确定的包含SQL评论“一个六面骰子滚”返回(兰德()*6)::INT+1;

所有用户有足够的特权在功能上可以使用的函数在计算环境中配置为统一目录,如以下示例:

选择target_catalogtarget_schemaroll_dice()

请注意

您可以使用udf使用语言SQL返回表或标量值。

注册一个Python UDF统一目录

在砖运行时13.1及以上的,您可以使用SQL创建函数声明注册标量Python udf统一目录。

重要的

只有专业和serverless SQL仓库支持Python udf统一目录。

Python udf是为了提供完整的Python的表现力直接在SQL函数,允许自定义的操作,比如先进的转换、数据屏蔽,散列。

Python udf执行在一个安全的,孤立的环境,没有访问文件系统或内部服务。

上运行的Python udf serverless计算没有访问网络。

看到udf是最有效的?

请注意

语法和语义的Python udf统一目录不同于Python udf SparkSession注册。看到用户自定义标量函数——Python

Python udf统一目录使用语句由双美元符号($ $以下代码示例),如:

target_catalog.target_schema创建函数。问候(s STRING) RETURNS STRING LANGUAGE PYTHON AS $$ return f"Hello, {s}" $$

下面的示例演示如何使用这个函数来返回所有名称存储在问候语句first_name列一个表学生:

选择target_catalogtarget_schema问候(first_name)学生;

您可以定义任意数量的Python函数在一个Python UDF,但必须返回标量值。

Python函数必须处理独立的价值观,和所有类型映射必须遵循砖SQL语言映射

您可以导入标准Python库包括砖,但你不能包括自定义库或外部依赖。

如果没有指定目录或模式,Python udf注册当前的活动模式。

下面的例子进口一个图书馆,在Python UDF使用多个函数:

创建函数roll_dice (num_dice整数,num_sides整数)返回整数语言PYTHON一样$ $进口numpy np def roll_die (num_sides):返回np.random.randint (num_sides) + 1 def sum_dice (num_dice num_sides):返回总和([roll_die (num_sides) x范围(num_dice)])返回sum_dice (num_dice num_side) $ $