幾個命令
//檢視所有函式
$hive> show functions;
//檢視函式的使用方法
$hive> desc function 函式名;
兩數和(addudf)/**
* 自定義hive函式
*/@description
(name =
"myadd"
, value =
"myadd(int a , int b) ==> return a + b "
, extended =
"example:\n"
+" myadd(1,1) ==> 2 \n"
+" myadd(1,2,3) ==> 6;"
)public
class
addudf
extends
udfpublic
intevaluate
(int a ,
int b ,
int c)
}
自定義日期函式/**
*自定義日期函式,使用genericudf
*/@description
(name =
"todate"
, value =
"todate()"
, extended =
"todate_***x-ext"
)public
class
todateudf
extends
genericudf
@override
public object evaluate
(deferredobject[
] args)
throws hiveexception
catch
(parseexception e)
}//兩個引數,date date,string frt
else
catch
(parseexception e)}}
//無參,返回系統時間物件
else
return null ;
}@override
public string getdisplaystring
(string[
] children)
}
自定義null值處理函式/**
* 自定義null值處理函式
*/public
class
nvlextends
genericudf
returnoiresolver =
newgenericudfutils.returnobjectinspectorresolver
(true);
//檢查引數型別if(
!(returnoiresolver.
update
(arguments[0]
)&& returnoiresolver
.update
(arguments[1]
)))return returnoiresolver.
get();
}@override
public object evaluate
(deferredobject[
] arguments)
throws hiveexception
return retval;
}@override
public string getdisplaystring
(string[
] children)
}
使用自定義函式//以第乙個函式為例
$> cp /mnt/hgfs/bigdata/runjars/myhive.jar /soft/hive/lib
//也可以使用 add
$> add jar /mnt/hgfs/bigdata/runjars/myhive.jar
//建立名為 myadd 的函式
create temporary function myadd as 'com.yuangh.hive.udf.addudf'
;
$> select myadd(1
,3);
結果:3
推薦書籍 hive自定義函式UDF
hive自定義函式 udf 可以幫助使用者輕鬆實現在hql語句中展現自定義查詢結果。這裡以乙個簡單的連線函式來實現使用者自定義函式,假設表結構如下 表中只有兩個簡單的字段,id和name。這裡實現乙個將id和name用 連線的函式,最後輸出結果。第一步 書寫stringjoin類,繼承udf,實現名...
hive自定義udf函式
在建立自定義函式時,需要將jar包全部部署到hive server節點的所有機器的使用者定義的udf引數目錄 hive.reloadable.aux.jars.path.jars.path.property property value usr lib hive lib value 呼叫 impor...
Hive自定義UDF函式
匯入自定義udf.jar的第3種方式!匯入核心依賴 外部pom已經匯入了hadoop依賴!org.apache.hivegroupid hive execartifactid 1.2.1version dependency dependencies package com.zhengkw.userf...