我是靠谱客的博主 拼搏向日葵,最近开发中收集的这篇文章主要介绍Hive的函数(入门),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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创建一个类

  1. UDF(User-Defined-Function)
    一进一出

  2. UDAF(User-Defined Aggregation Function)
    聚集函数,多进一出
    类似于:count/max/min

  3. UDTF(User-Defined Table-Generating Functions)
    一进多出
    如lateral view explore()

  4. 官方文档地址
    HivePlugins - Apache Hive - Apache Software Foundation

  5. 编程步骤:

    1. 继承org.apache.hadoop.hive.ql.UDF
    2. 需要实现evaluate函数;evaluate函数支持重载;
  6. 注意事项

    1. UDF必须要有返回类型,可以返回null,但是返回类型不能为void;
    2. 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的函数(入门)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部