HIve自定义函数

官网地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

在shell中找版本

[hadoop@hadoop001 bin]$ pwd
/home/hadoop/app/hive-1.1.0-cdh5.7.0/bin

版本要对应上

在idae中添加hive依赖;

<hive.version>1.1.0-cdh5.7.0</hive.version>
<dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-exec</artifactId>
      <version>${hive.version}</version>
    </dependency>

之后看一下如何开发

package com.ruoze.g5;
//hive自定义UDF

import org.apache.hadoop.hive.ql.exec.UDF;

public class RuozeUDF extends UDF {
    public String evaluate(String name){
        return "Ruozedata:" + name;
    }
  public static void main (String[]arge) {
        RuozeUDF udf= new RuozeUDF();
       System.out.println(udf.evaluate("豆豆"));;
  }
}

简单的开发完,要在idea上测试一下
在这里插入图片描述
然后进行打包上传
在这里插入图片描述

[hadoop@hadoop001 etc]$ hadoop fs -mkdir /lib/
[hadoop@hadoop001 etc]$ hadoop fs -put g5spark1-1.0.jar /lib/
hive (default)> CREATE FUNCTION ruoze_hello AS 'com.ruoze.g5.RuozeUDF'
              > 
              > USING JAR 'hdfs://hadoop001:9000/lib/g5spark1-1.0.jar'; 
converting to local hdfs://hadoop001:9000/lib/g5spark1-1.0.jar
Added [/tmp/fb09b343-d4ab-49e5-a851-9c3c182ed855_resources/g5spark1-1.0.jar] to class path
Added resources: [hdfs://hadoop001:9000/lib/g5spark1-1.0.jar]
OK
Time taken: 0.398 seconds
hive (default)> 


结果:

mysql> select * from funcs \G;
*************************** 1. row ***************************
    FUNC_ID: 1
 CLASS_NAME: com.ruoze.g5.RuozeUDF
CREATE_TIME: 1546951354
      DB_ID: 1
  FUNC_NAME: ruoze_hello
  FUNC_TYPE: 1
 OWNER_NAME: NULL
 OWNER_TYPE: USER
1 row in set (0.00 sec)

ERROR: 
No query specified

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值