Hive之UDF及MR - zhongjiajie/zhongjiajie.github.com GitHub Wiki

Hive之UDF及MR

UDF UDTF UDAF

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()

编写UDF

编写Hive UDF有两种方式:

  • extends UDF,重写evaluate方法
  • extends GenericUDF,重写initialize getDisplayString evaluate方法

注册UDF

临时UDF

  • 编写udf,打包
  • add jar /path/to/jar
  • create temporary function <function_name> as 'com.ly.udf.HelloWorld'
  • select <function_name>(param);

永久UDF

将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'

查看添加jar包相关

  • add jar /path/to/jar:将指定位置的jar包添加到classpath,可以是本地文件也可以是hdfs文件
  • list jar:显示已经添加到classpath的变量
⚠️ **GitHub.com Fallback** ⚠️