在idea创建一个maven项目,然后放在hive环境运行

正常创建一个new maven项目
关于maven生命周期文档:https://www.runoob.com/maven/maven-build-life-cycle.html

打包完毕后在target会出现打包好的jar包

  1. 将jar包上传到Hive所在的服务器上,假设上传到路径为 /path/to/jar/HiveUDF-0.0.1-SNAPSHOT-all.jar

  2. 启动Hive客户端

  3. 在Hive客户端中运行以下命令添加jar包到Hive中:

ADD JAR /path/to/jar/HiveUDF-0.0.1-SNAPSHOT-all.jar;
  1. 注册自定义函数
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 必须是实际的自定义函数类名。

  1. 运行查询语句:
SELECT my_func(column1) FROM my_table;

这里假设要对my_table表的column1列应用my_func函数。

  1. 如果想查询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;
posted @ 2023-03-05 08:36  去揽一池星河  阅读(153)  评论(0)    收藏  举报