概述
1 系统自带的函数
1.1查看系统自带的函数
hive> show functions;
1.2显示自带的函数的用法
hive> desc function upper;
1.3详细详细自带的函数的用法
hive> desc function extended upper;
2 自定义函数描述
2.1 Hive自带了一些函数,比如: max/min等,但是数量有限,自己可以通过自定义UDF来方便
的扩展
2.2 当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)
2.3根据用户自定义函数类别分为以下三种:
3 自定义函数开发案例
3.1创建一个maven工程
3.2导入hive依赖
3.3创建一个类
-
UDF(User-Defined-Function)
一进一出 -
UDAF(User-Defined Aggregation Function)
聚集函数,多进一出
类似于:count/max/min -
UDTF(User-Defined Table-Generating Functions)
一进多出
如lateral view explore() -
官方文档地址
HivePlugins - Apache Hive - Apache Software Foundation -
编程步骤:
- 继承org.apache.hadoop.hive.ql.UDF
- 需要实现evaluate函数;evaluate函数支持重载;
-
注意事项
- UDF必须要有返回类型,可以返回null,但是返回类型不能为void;
- UDF中常用Text/LongWritable等类型,不推荐使用java类型;
import org.apache.hadoop.hive.ql.exec.UDF;
public class Lower extends UDF {
public String evaluate(final String s) {
if (s == null) {
return null;
}
return s.toString().toLowerCase();
}
}
3.4打成jar包上传到服务器/root/data/jars/udf.jar
3.5将jar包添加到hive的classpath
hive (default)> add jar /root/data/jars/udf.jar;
3.6创建临时函数与开发好的java class关联
hive (default)> create temporary function my_lower as "com.jh.day12.Lower";
3.7即可在hql中使用自定义的函数strip
hive (default)> select ename, my_lower(ename) lowername from emp;
3.8永久添加 jar 包
- 在 hive-site.xml 文件中添加:
<property>
<name>hive.aux.jars.path</name>
<value>file:///root/data/jars/udf.jar</value>
</property>
- 永久注册
hive (default)> create function my_lower as "com.jh.day12.Lower";
3.9)删除函数
hive (default)>drop function my_lower;
最后
以上就是拼搏向日葵为你收集整理的Hive的函数(入门)的全部内容,希望文章能够帮你解决Hive的函数(入门)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复