栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive的函数(入门)

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 文件中添加:

    hive.aux.jars.path
    file:///root/data/jars/udf.jar
  • 永久注册
    hive (default)> create function my_lower as "com.jh.day12.Lower";

3.9)删除函数

hive (default)>drop function my_lower;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号