添加 Hive 自定义函数

使用 Java 编写好 UDF 或 UDAF 函数后,Hive 要如何使用这些自定义函数呢?

1 在 HDFS 上创建存放 jar 包的目录

hadoop fs -mkdir -p /hive/private/lib

2 将打包好的 jar 包上传到创建好的目录下

hadoop fs -put gps_to_bd.jar /hive/private/lib
hadoop fs -ls /hive/private/lib # 查看是否上传成功

3 创建函数

Hive 函数分为两种:永久函数与临时函数

临时函数仅在当前会话有效。而永久函数添加一次之后即可永久使用。

创建函数时需要注意:

  1. 函数名需要是数据库名.函数名的形式
  2. 类名需要完整,即包名.类名
  3. HDFS 上 jar 包的路径需要是全路径,即hdfs://...,并且数据库有权限访问该路径

3.1 永久函数

**格式:**CREATE FUNCTION ‘数据库名.函数名’ AS ‘包名.类名’ USING JAR ‘HDFS全路径’

hive (hadoop)> CREATE FUNCTION hadoop.gps_to_bd AS 'cn.hive.Gps_to_Bd' USING JAR 'hdfs://ns1//hive/private/lib/gps_to_bd.jar';

3.2 临时函数

hive (hadoop)> add jar 'hdfs://ns1//hive/private/lib/gps_to_bd.jar';
hive (hadoop)> CREATE TEMPORARY FUNCTION hadoop.gps_to_bd AS 'cn.hive.Gps_to_Bd';

**PS:**如果函数名已经存在了,可以使用drop function db_name.fun_name删除创建好的函数。

4 验证函数

最后,别忘了根据函数的功能验证创建好的函数。

你可能感兴趣的:(添加 Hive 自定义函数)