UDF

首先我们学习hadoop的时候,为了让我们不太会java语言但是对SQL很熟悉的工程师能够操作基本的mapreduce计算过程,Hive被设计出来了。

Hive就好比是hadoop在执行MR(mapreduce)程序的一个操作系统,可以用简单的SQL语句去代替复杂的MR程序,因为Hive可以将我们的SQL语句转化为MR程序然后去执行。

UDF,(user-defined function),用户定义函数

有的时候 查询无法使用Hive提供的内置函数来表示,通过写UDF,Hive就可以方便地插入用户写的处理代码并在查询中使用它们,

相当于在HQL(Hive SQL)中自定义一些函数

首先UDF必须用java语言编写,Hive本身就是用java写的。

 

Hive中有三种UDF:(普通)UDF、用户定义聚集函数(user-defined aggregate function,UDAF)、用户定义表生成函数(user-defined table-generating function,UDTF)。

UDF操作作用于单个数据行,并且产生一个数据行作为输出。大多数函数都属于这一类(比如数学函数和字符串函数)。

UDAF 接受多个输入数据行,并产生一个输出数据行。想COUNT和MAX这样的函数就是聚集函数。

UDTF 操作作用于单个数据行,并且产生多个数据行-------一个表作为输出

posted @ 2019-06-26 11:37  leims  阅读(548)  评论(0)    收藏  举报