7.2 自定义函数

1)Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。

2)当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。

3)根据用户自定义函数类别分为以下三种:

(1)UDF(User-Defined-Function)

一进一出

(2)UDAF(User-Defined Aggregation Function)

聚集函数,多进一出

类似于:count/max/min

(3)UDTF(User-Defined Table-Generating Functions)

一进多出

如lateral view explode()

4)官方文档地址

https://cwiki.apache.org/confluence/display/Hive/HivePlugins

5)编程步骤:

(1)继承org.apache.hadoop.hive.ql.exec.UDF

(2)需要实现evaluate函数;evaluate函数支持重载;

(3)在hive的命令行窗口创建函数

a)添加jar

add jar linux_jar_path

b)创建function

create [temporary] function [dbname.]function_name AS class_name;

(4)在hive的命令行窗口删除函数

Drop [temporary] function [if exists] [dbname.]function_name;

6)注意事项

(1)UDF必须要有返回类型,可以返回null,但是返回类型不能为void;

7.3 自定义UDF函数

1.创建一个Maven工程Hive

2.导入依赖

<dependencies>

<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec -->

<dependency>

<groupId>org.apache.hive</groupId>

<artifactId>hive-exec</artifactId>

<version>1.2.1</version>

</dependency>

</dependencies>

3.创建一个类

package com.atguigu.hive;

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.toLowerCase();

}

}

4.打成jar包上传到服务器/opt/module/jars/udf.jar

5.将jar包添加到hive的classpath

hive (default)> add jar /opt/module/datas/udf.jar;

6.创建临时函数与开发好的java class关联

hive (default)> create temporary function mylower as "com.atguigu.hive.Lower";

7.即可在hql中使用自定义的函数

hive (default)> select ename, mylower(ename) lowername from emp;

hive:函数:自定义函数(笔记)相关推荐

  1. Hadoop生态圈-hive编写自定义函数

    Hadoop生态圈-hive编写自定义函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  2. Hadoop生态圈-Hive的自定义函数之UDF(User-Defined-Function)

    Hadoop生态圈-Hive的自定义函数之UDF(User-Defined-Function) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 转载于:https://www.cnb ...

  3. python函数——自定义函数详解

    python函数内容参考 文章目录 python函数 自定义函数 返回值 分类 递归函数 嵌套函数(内部函数) 变量的作用域 全局变量: 局部变量: Python函数参数 参数的传递 可变对象-不可变 ...

  4. 函数----自定义函数

    前言 目前所学的方式去计算"s = '人生若只如初见'"的长度. 用len()函数计算 s = '人生若只如初见' print(len(s)) # 用len()函数计算,len() ...

  5. 用matlab定义位移函数,matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)...

    matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法),哪吒游戏网给大家带来详细的matlab 定义函数(Matlab怎么调用函数 自定义函数使用方法)介绍,大家可以阅读一下,希望这篇 ...

  6. hive udaf_Hive自定义函数

    为什么需要自定义函数 hive的内置函数满足不了所有的业务需求. hive提供很多的模块可以自定义功能,比如:自定义函数.serde.输入输出格式等. 常见自定义函数UDF分三种: UDF(User ...

  7. Hive UDF自定义函数(临时和永久的区别)

    Hive中虽然自带了一些函数,例如max().avg().sum()等,但有时候这些函数可能无法满足我们的需要,这时候就可以通过自定义UDF来进行扩展. 开发流程 UDF的开发流程基本有以下步骤: 继 ...

  8. Hive之自定义函数

    1.系统内置函数 (1)查看系统自带的函数  show functions; (2)显示自带的函数的用法  desc function upper; (3)详细显示自带的函数的用法  desc fun ...

  9. 学习聚宽4:函数 下单函数 自定义函数(笔记简单,但是需要重点看)

    @https://www.joinquant.com/view/community/detail/7570870ccf37ba48007261992d2e543a 一.函数 参数 聚宽设计的函数的用法 ...

  10. hive的自定义函数以及自定义加密函数

    hive对于敏感数据的加密还不够完善,现在开发一个udf函数,自己设置密钥(hive的加密函数等级比较低,也没有集成自己加密的密钥函数,所以自己开发一个),如果要加密一些数据则可以自己使用特定的密钥进 ...

最新文章

  1. haproxy,lvs keepalived || heartbeat,nginx对比
  2. 全球及中国医用敷料市场销售前景与竞争格局研究报告2022版
  3. 真格量化——50etf与期权对冲策略
  4. c语言指针章总结,c语言指针的学习心得
  5. yuv转opencv中的IplImage
  6. python循环怎么跳过开始循环,如果循环内部调用的函数执行时间太长,你怎么能跳过python中的循环迭代?...
  7. CAD建模软件:BricsCAD 22 for Mac
  8. Ant—如何Windows操作系统中搭建Apache Ant环境
  9. C++ 多态与虚函数面试题
  10. Jmeter录制脚本介绍
  11. itunes显示无法更新服务器失败怎么办啊,iTunes更新时出错怎么办?iTunes更新时出错的解决方法...
  12. ps中怎样测量标尺线之间的距离及怎样切换距离单位
  13. 在Word中利用日历向导查农历
  14. (转)做好产品需求文档的10步
  15. 电脑黑屏显示重新连接服务器,电脑黑屏怎么处理(电脑上显示器黑屏的处理方法)...
  16. intersect的用法
  17. Discuz更改帖子标题的字符长度限制
  18. svn tree conflict
  19. IDEA 设置4个空格代替tab
  20. android极光推送声音,【极光推送】iOS APNS 自定义铃声

热门文章

  1. Dart语言编程基础
  2. 无限法则裸连本地服务器错误,无限法则D3Dinitfailed报错问题解决办法
  3. 短进程优先的调度算法详解
  4. 【UCOSii源码解析】事件控制块
  5. 数据库入门-----Windows平台下按照和配置MySQL
  6. C语言·XDOJ练习·拼数字
  7. LaTeX数学公式常用符号
  8. 微信昵称乱码 mysql_微信登录昵称中文乱码 Emoji表情乱码问题总结
  9. linux添加fcitx输入法,linux安装输入法_怎么在Linux下安装fcitx输入法
  10. Boren-python接小球游戏