文档首页/ 智能数据湖 AI DataLake/ SDK参考/ 引擎专属SDK/ Python SDK参考/ Aura DataFrame SDK(Python)/ 用户自定义函数UDF/ 开发注意事项
更新时间:2026-10-16 GMT+08:00
开发注意事项
运行环境约束
- UDF编程语言仅支持Python。
- UDF运行时环境的Python版本支持3.10和3.11系列,建议使用3.11.9版本。
- 使用CLOUDPICKLE序列化主函数时,确保本地Python版本为3.11.9且cloudpickle版本为 3.0.0,以避免Aura运行环境里因版本不一致导致函数体解析失败。
函数定义约束
- UDF 的参数不支持设置默认值;如果创建函数时参数或返回值带有精度,不进行精度检测。
- 不支持函数重载。
函数与代码包要求
- 函数体和代码包归档路径,两者必须定义一个。
- 当业务场景比较复杂、UDF所涉及的代码较多时,推荐以文件压缩包形式注册函数:将UDF依赖的所有相关代码文件统一归档到一个压缩包,上传至OBS后,在创建函数时指定压缩包的存储路径。压缩包要求如下:
注册方式的建议
Aura提供了三种注册UDF的方式:ibis-aura SDK显式注册、隐式注册以及SQL的DDL注册,推荐用户使用ibis-aura SDK显式注册,该方式有以下两个优势:
- SDK提供的注册接口已完全遵守Aura DDL的使用规范,只要正确调用接口即可,能避免违反约束规范而导致UDF不能正常使用的问题。
- SDK提供了更多的约束检查,例如Python版本的检测,自动整理UDF代码包等。
依赖管理
- Python UDF 的三方依赖包列表需要保证lib间的兼容性,并建议所有依赖包指定稳定的版本。
- 在本地调试UDF时,建议使用华为源所提供的三方包搭建调试环境,以避免UDF代码在本地环境可运行,而在Aura里运行时出现版本无法安装、版本不兼容等问题。
存储与权限
用户只能使用OBS并行文件系统的桶,来存储UDF代码压缩包,且需要在LakeFormation上赋予IAM用户读的权限。
父主题: 用户自定义函数UDF