Hive 自定義函數
阿新 • • 發佈:2018-01-31
服務器 數據 += img clas xtend 分享圖片 定義 com
hive 支持自定義UDF,UDTF,UDAF函數
以自定義UDF為例:
使用一個名為evaluate的方法
package com.hive.custom; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.IntWritable; public class XiaoUDF extends UDF { /** * 值加1000 * @param i * @return val */ public IntWritable evaluate(finalIntWritable i) { int val= i.get(); val+=1000; return new IntWritable(val); } }
將寫好的代碼打為jar包,上傳到服務器,或者hdfs
add jar /root/udfxiao.jar;
//add jar you.jar
註冊函數
註冊一個臨時函數
create temporary function fei as ‘com.hive.custom.XiaoUDF‘; //fei:註冊的函數名 //com.hive.custom.XiaoUDF 註冊函數的全類名
使用函數
select fei(id) from test;
註冊永久函數
create function testdb.peng as ‘com.hive.custom.XiaoUDF‘; //testdb 註冊永久函數的數據庫
從HDFS上註冊函數
CREATE FUNCTION fei AS ‘com.hive.custom.XiaoUDF‘ USING JAR ‘hdfs:///udfxiao.jar‘; // fei 註冊的函數名 //com.hive.custom.XiaoUDF 函數的全內名 //hdfs:///udfxiao.jar hdfs上根目錄下的jar
刪除函數
drop temporary function if exists fei;
Hive 自定義函數