内容纲要
概要描述
本文主要介绍Studio2.4.1版本,如何通过自定义函数功能创建持久化udf。
详细说明
编写udf
该步骤可以参考 【UDF样例之通过日期计算其星座】 ,生成jar包即可。
创建自定义函数
在SQL-函数-自定义函数中,新建一个名为zodiac的函数,字段填写如下:
函数名称:填写udf函数名称
数据连接:选择inceptor/argodb数据源连接,可选多个
文件:选择本地的udf jar文件
class路径:完整路径名,不可以只写类名

填写完成之后,点击右上角保存按钮
数据源:选择inceptor/argodb数据源连接
hdfs数据源:选择hdfs数据源
hdfs路径:选择udf jar的hdfs存储目录

然后点击确定即可。
从后台sqlbook.log日志能够看到该udf的创建是否成功,执行创建的语句是:create permanent function zodiac as 'zodiac' using jar 'hdfs://nameservice1/tmp/zodic/udftest.jar
函数使用
我们创建一张包含日期数据的表,通过该udf函数查询日期的星座,
CREATE TABLE littlebigdata(
id INT,
name string,
email string,
bday string,
ip string,
gender string,
anum int)
CLUSTERED BY (id) INTO 1 BUCKETS
STORED AS ORC_TRANSACTION;
INSERT INTO littlebigdata SELECT 1,'edward capriolo','edward@media6degrees.com','2-12-1981','209.191.139.200','M',10 FROM system.dual;
INSERT INTO littlebigdata SELECT 2,'bob','bob@test.net','10-10-2004','10.10.10.1','M',50 FROM system.dual;
INSERT INTO littlebigdata SELECT 3,'sara connor','sara@sky.net','4-5-1974','64.64.5.1','F',2 FROM system.dual;
通过zodiac这个udf函数进行查询,可以看到对应的星座信息:
SELECT t.*,zodiac(bday) AS constellation FROM littlebigdata t;

注:241版本TDS,提交自定义函数,重启inceptor,不会丢失