文档首页/
数智融合计算服务 DataArtsFabric/
开发指南/
数智融合(Data+AI)/
DataArtsFabric DataFrame/
使用DataFrame API注册Scalar UDF/
显式注册Scalar UDF
更新时间:2025-07-08 GMT+08:00
显式注册Scalar UDF
显式注册Scalar UDF,即用户需要手动在Python代码中侵入式添加注册逻辑代码。详细用法请参见Scalar UDF显式注册语法。
- 对于Scalar Python UDF,注册Scalar Python UDF的作用是将一个原始的Python函数注册进数据库中。显式注册的示例代码如下,传入参数说明请参见Scalar Python UDF注册参数。
import ibis import ibis_fabric as fabric from ibis_fabric.udf import RegisterType def calculate_product(price: float, quantity: int) -> float: return price * quantity con = ibis.fabric.connect(...) # 显式,直接注册UDF udf = con.udf.python.register(calculate_product, database="your-database", register_type=RegisterType.OBS) # 显式,从文件注册UDF udf = con.udf.python.register_from_file("your-current-file-path", "calculate_product", database="your-database", register_type=RegisterType.OBS) # 使用UDF t = con.table(name="your-table", schema="your-schema") expression = t.select(udf(t.price, t.quantity).name("sum column")) print(expression.execute())
- 对于Scalar Builtin UDF,注册Scalar Builtin UDF的作用是获得数据库已存在的函数的句柄,无实际注册的操作。显式注册的示例代码如下,传入参数说明请参见Scalar Builtin UDF注册参数。
import ibis import ibis_fabric as fabric # 数据库中已有power函数 def power(a: float, b: float) -> float: ... con = ibis.fabric.connect(...) # 显式,直接注册UDF udf = con.udf.builtin.register(power, database="your-database") # 显式,从文件注册UDF udf = con.udf.builtin.register_from_file("your-current-file-path", "power", database="your-database") # 使用UDF t = con.table(name="your-table", schema="your-schema") expression = t.select(udf(t.interest, t.interval).name("yield column")) print(expression.execute())