更新时间:2022-12-07 GMT+08:00

创建函数

功能描述

DLI支持创建使用UDF和UDTF等自定义函数应用于Spark作业开发当中。

语法格式

1
2
3
4
5
CREATE [TEMPORARY] FUNCTION [db_name.]function_name AS class_name
  [USING resource,...]

resource: 
  : (JAR|FILE|ARCHIVE)file_uri

注意事项

  • 如果在数据库中存在同名的函数,系统将会报错。
  • 只支持Hive语法创建函数。
  • 请注意避免该场景:如果创建的自定义函数F1指定类C1,程序包名JAR1,创建自定义函数F2也指定类C1,程序包JAR2,因为F2和F1使用相同的类名,导致功能相互冲突,影响作业执行。

关键字

  • TEMPORARY:所创建的函数仅在当前会话中可用,并且不会持久化到底层元数据库中(如果有的话)。不能为临时函数指定数据库名称。
  • USING <resources>:需要加载的资源。可以是JAR、文件或者URI的列表。

示例

创建函数mergeBill。

1
2
CREATE FUNCTION mergeBill AS 'com.xxx.hiveudf.MergeBill'
  using jar 'obs://onlyci-7/udf/MergeBill.jar';