您当前的位置: 首页 >  hive

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Hive 函数

梁云亮 发布时间:2020-02-20 17:41:07 ,浏览量:2

系统内置函数
  • 查看系统自带的函数

    show functions;

    在这里插入图片描述

  • 显示自带的函数的用法

    desc function upper;

    在这里插入图片描述

  • 详细显示自带的函数的用法

    desc function extended upper;

    在这里插入图片描述

日期函数

在这里插入图片描述

条件函数

在这里插入图片描述

字符串函数

在这里插入图片描述

自定义函数

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

  • UDF(User-Defined-Function):返回对应值,一对一。操作作用于单个数据行,并且产生一个数据行作为输出。大多数函数都属于这一类(比如数学函数和字符串函数),比如:upper()、lowser()等。。
  • UDAF(User-Defined Aggregation Function):返回聚类值,多对一。接受多个输入数据行,并产生一个输出数据行,比如:avg()、sum()等。
  • UDTF (User-Defined Table-Generating Functions):返回拆分值,一对多。操作作用于单个数据行,并且产生多个数据行(采用表作为输出),比如:collect_set()、collect_list()等。 注意:
  • UDF必须要有返回类型,可以返回null,但是返回类型不能为void
  • UDTF函数有一些限制:
  1. 采用SELECT里面不能有其它字段
  2. 不能嵌套
  3. 不支持GROUP BY / CLUSTER BY / DISTRIBUTE BY / SORT BY

示例:自定义UDF函数

第一步:创建Maven项目,添加如下依赖:


  org.apache.hive
  hive-exec
  3.1.2

第二步:继承org.apache.hadoop.hive.ql.UDF,编写自定义函数类

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();
	}
}

第三步:项目打包,然后将生成的jar文件上传Linux中,比如/usr/local/test 在这里插入图片描述 第四步:在Hive中,添加第三步中自定义函数所在的jar包 在这里插入图片描述 第五步:创建临时函数

语法: create temporary function 自定义函数名称 AS ‘自定义UDF的全类名’

在这里插入图片描述 第六步:在hive的命令行窗口执行自定义函数 在这里插入图片描述

第七步:销毁临时函数:

Drop [temporary] function [if exists] [dbname.]自定义函数名; 在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0445s