hive自定義函式 UDF

2021-08-22 19:10:57 字數 2317 閱讀 6500

幾個命令

//檢視所有函式

$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...