正常创建一个new maven项目
关于maven生命周期文档:https://www.runoob.com/maven/maven-build-life-cycle.html
打包完毕后在target会出现打包好的jar包
-
将jar包上传到Hive所在的服务器上,假设上传到路径为 /path/to/jar/HiveUDF-0.0.1-SNAPSHOT-all.jar
-
启动Hive客户端
-
在Hive客户端中运行以下命令添加jar包到Hive中:
ADD JAR /path/to/jar/HiveUDF-0.0.1-SNAPSHOT-all.jar;
- 注册自定义函数
CREATE TEMPORARY FUNCTION my_func AS 'com.example.MyUDF';
这里假设MyUDF是在HiveUDF-0.0.1-SNAPSHOT-all.jar中的自定义函数类,my_func是自定义函数的别名。注意com.example.MyUDF不能随意更改。'com.example.MyUDF' 是完整的自定义函数类名,需要与实际的类名一致,否则会出现类找不到的错误。而 CREATE TEMPORARY FUNCTION my_func AS 'MyUDF' 则是定义了一个自定义函数的别名为 my_func。可以将别名改成任何你喜欢的名称,但 MyUDF 必须是实际的自定义函数类名。
- 运行查询语句:
SELECT my_func(column1) FROM my_table;
这里假设要对my_table表的column1列应用my_func函数。
- 如果想查询HiveUDF-0.0.1-SNAPSHOT-all.jar中全部的数据,可以先编写一个包含所有需要查询的函数的HiveQL脚本,然后运行该脚本即可。例如:
ADD JAR /path/to/jar/HiveUDF-0.0.1-SNAPSHOT-all.jar;
CREATE TEMPORARY FUNCTION my_func1 AS 'com.example.MyUDF1';
CREATE TEMPORARY FUNCTION my_func2 AS 'com.example.MyUDF2';
CREATE TEMPORARY FUNCTION my_func3 AS 'com.example.MyUDF3';
SELECT my_func1(column1), my_func2(column2), my_func3(column3) FROM my_table;
标签:自定义,my,jar,idea,hive,maven,MyUDF,com
From: https://www.cnblogs.com/catch-autumn/p/17179723.html