【Hive五】Hive函数UDF
Hive函数
系统自带的函数
查看系统自带的函数
查看系统自带的函数
show functions;显示自带的函数的用法
desc function upper;详细显示自带的函数的用法
desc function extended upper;
自定义函数描述
描述
当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function),详情请查看:官网
根据用户自定义函数类别分为以下三种
UDF(User-Defined-Function)
一进一出UDAF(User-Defined Aggregation Function)
聚集函数,多进一出
类似于:count/max/minUDTF(User-Defined Table-Generating Functions)
一进多出
如lateral view explore()
自定义开发步骤(UDF)
继承org.apache.hadoop.hive.ql.UDF
需要实现evaluate函数;evaluate函数支持重载
在hive的命令行窗口创建函数
添加jar
add jar linux_jar_path创建function
create [temporary] function [dbname] function_name AS class_name
在hive命令窗口删除函数
- Drop [temporary] function [if exists] [dbname.] function_name;
注意事项
UDF必须要有返回类型,可以返回null,但是返回类型不能为void
UDF中常用Text/LongWritable等类型,不推荐使用java类型
开发案例(UDF)
创建一个java工程,并创建一个lib文件夹
将hive的jar包解压后,将apache-hive-1.2.1-bin\lib文件下的jar包都拷贝到java工程中
创建一个类
package com.demo.hive; import org.apache.hadoop.hive.ql.exec.UDF; public class Lower extends UDF { public String convert(final String s) { if (s == null) {
return null;
} return s.toString().toLowerCase();
}
}
打成jar包上传到服务器/opt/module/jars/udf.jar
将jar包添加到hive的classpath
hive (default)> add jar /opt/module/jars/udf.jar;创建临时函数与开发好的java class关联
hive (default)> create temporary function my_lower as "com.demo.udf.Lower";即可在hql中使用自定义的函数strip
select ename, my_lower(ename) lowername from emp;
【Hive五】Hive函数UDF的更多相关文章
- 三 Hive 数据处理 自定义函数UDF和Transform
三 Hive 自定义函数UDF和Transform 开篇提示: 快速链接beeline的方式: ./beeline -u jdbc:hive2://hadoop1:10000 -n hadoop 1 ...
- HIVE 编写自定义函数UDF
一 新建JAVA项目 并添加 hive-exec-2.1.0.jar 和hadoop-common-2.7.3.jar hive-exec-2.1.0.jar 在HIVE安装目录的lib目录下 had ...
- Hive(五):hive与hbase整合
配置 hive 与 hbase 整合的目的是利用 HQL 语法实现对 hbase 数据库的增删改查操作,基本原理就是利用两者本身对外的API接口互相进行通信,两者通信主要是依靠hive_hbase-h ...
- Hive 文件格式 & Hive操作(外部表、内部表、区、桶、视图、索引、join用法、内置操作符与函数、复合类型、用户自定义函数UDF、查询优化和权限控制)
本博文的主要内容如下: Hive文件存储格式 Hive 操作之表操作:创建外.内部表 Hive操作之表操作:表查询 Hive操作之表操作:数据加载 Hive操作之表操作:插入单表.插入多表 Hive语 ...
- Hadoop3集群搭建之——hive添加自定义函数UDF
上篇: Hadoop3集群搭建之——虚拟机安装 Hadoop3集群搭建之——安装hadoop,配置环境 Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hive安装 Hadoo ...
- Hadoop生态圈-Hive的自定义函数之UDF(User-Defined-Function)
Hadoop生态圈-Hive的自定义函数之UDF(User-Defined-Function) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Hive中的用户自定义函数UDF
Hive中的自定义函数允许用户扩展HiveQL,是一个非常强大的功能.Hive中具有多种类型的用户自定义函数.show functions命令可以列举出当前Hive会话中的所加载进来的函数,包括内置的 ...
- Hadoop Hive概念学习系列之hive里的用户定义函数UDF(十七)
Hive可以通过实现用户定义函数(User-Defined Functions,UDF)进行扩展(事实上,大多数Hive功能都是通过扩展UDF实现的).想要开发UDF程序,需要继承org.apache ...
- Hive扩展功能(三)--使用UDF函数将Hive中的数据插入MySQL中
软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这五部机, 每部主机的用户名都为centos ...
- hive自定义函数UDF UDTF UDAF
Hive 自定义函数 UDF UDTF UDAF 1.UDF:用户定义(普通)函数,只对单行数值产生作用: UDF只能实现一进一出的操作. 定义udf 计算两个数最小值 public class Mi ...
随机推荐
- linux下安装及配置jenkins
jenkins常用的有两种安装方式: 1.直接下载war包jenkins.war,下载地址https://jenkins.io/download 直接下载 1.1.可以把war包直接部署到servle ...
- Asp.net让某一页设置成gb2312或utf-8的方法
有些需求,一定要用到utf-8格式,在web.config里面设置<globalization requestEncoding="utf-8" ...
- shell----删除文件中的^M
在Linux下使用vi来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些“^M”.有几种方法可以处理. 1.使用vi的替换功能.启动vi,进入命令模式,输入以下命令: :%s/^M$/ ...
- memcached 相关
今天用了下memcached,把一个日志分析结果的大数组缓存起来,由于实时性跟准确性要求不高,所以缓存一周:因为日志越来越多,不缓存的话每次查看页面会比较慢.(其实可以先离线定期计算好结果存起来).以 ...
- iText中输出 中文
iText中输出中文,有三种方式: 1.使用iTextAsian.jar中的字体 BaseFont.createFont("STSong-Light", "UniG ...
- 获取Spring管理的Bean
1.再Spring配置文件中配置工具类 <!-- 用于持有ApplicationContext,可以使用SpringContextHolder.getBean('xxxx')的静态方法得到spr ...
- PHP读取文件内容的五种方式(转载)
php读取文件内容的五种方式 分享下php读取文件内容的五种方法:好吧,写完后发现文件全部没有关闭.实际应用当中,请注意关闭 fclose($fp); php读取文件内容: -----第一种方法--- ...
- es6之数据结构
1.set的用法 用add方法添加元素,添加的数组不可重复. 可利用set类型添加元素不重复的功能,给数组完成去重的功能 size属性用于获取set元素的长度 { let list =new Set( ...
- STL Vector使用
http://blog.163.com/zhoumhan_0351/blog/static/399542272010225104536463 Vector 像一个快速的数组,其具有数组的快速索引方式. ...
- Linux下的压缩解压缩命令
*.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— *.gz ...