Hive之UDF及MR - zhongjiajie/zhongjiajie.github.com GitHub Wiki
Hive自定义函数包括三种UDF、UDAF、UDTF。使用方式 :在HIVE会话中add 自定义函数的jar文件,然后创建function继而使用函数
- UDF(User-Defined-Function): 一进一出
- UDAF(User- Defined Aggregation Funcation): 聚集函数,多进一出。Count/max/min
- UDTF(User-Defined Table-Generating Functions): 一进多出,如lateral view explore()
编写Hive UDF有两种方式:
-
extends UDF
,重写evaluate
方法 -
extends GenericUDF
,重写initialize
getDisplayString
evaluate
方法
- 编写udf,打包
add jar /path/to/jar
create temporary function <function_name> as 'com.ly.udf.HelloWorld'
select <function_name>(param);
将udf的jar包上传到hdfs中,创建的时候指定hdfs中的路径
hadoop fs -put /local/path /hdfs/path
create function default.add as 'com.bigdata.add' using jar 'hdfs:///service/add.jar'
-
add jar /path/to/jar
:将指定位置的jar包添加到classpath,可以是本地文件也可以是hdfs文件 -
list jar
:显示已经添加到classpath的变量