hive函数分为内置函数和自定义函数。
内置函数:
排名函数:(3种)
row_number():没有并列,相同名次按顺序排(同分不同名)
rank():有并列,相同名次空位
dense_rank():有并列,相同名次不空位
班级成绩排名前三的:
1、按班级分组,按照学生成绩倒序排列
取前三名:
over:开窗函数
patition只能用order by,不能用sort by
自定义函数:
为什么要有自定义函数:
hive的内部函数无法满足所有的业务需求,hive提供很多模块的自定义功能,比如:serde、自定义函数、输入输出格式等。
UDF:用户自定义函数,user defined function.一对一的输入输出(常用)
UDAF:用户自定义聚合函数。user defined aggregation function.多对一的输入输出。
UDTF:用户自定义表生成函数。user defined table-generate function.一对多的输入输出
编写UDF的方式:
1、继承UDF,重写evaluate(),允许重载。
2、继承genericUDF,重写initlizer()getdisplay()evaluate()
使用:
第一种用法:(只对当前session有效)
1.将编写好的UDF的jar包上传到服务器,并添加带hive的class path中
add jar /root/xxx.jar
2.创建一个自定义的临时函数名
3.测试
dual