函数


系统内置函数

1.查看系统自带的函数

show functuions;

2.显示自带的函数的用法

desc function month;

3.详细显示自带的函数的用法

desc function extended month;



自定义函数

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 explore()

4)官方文档地址

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

5)编程步骤:

(1)继承org.apache.hadoop.hive.ql.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;



自定义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中使用自定义的函数strip

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

Hive _函数(系统内置函数、自定义函数、自定义UDF函数)相关推荐

  1. 8.Hive基础—函数—系统内置函数、常用内置函数、自定义函数、自定义UDF函数、自定义UDTF函数

    本文目录如下: 第8章 函数 8.1 系统内置函数 8.2 常用内置函数 8.2.1 空字段赋值 8.2.2 CASE WHEN THEN ELSE END 8.2.3 行转列 8.2.4 列转行 8 ...

  2. hive 解密_hive 中自定义 base64 加密 解密 UDF 函数

    一.maven依赖 org.apache.hadoop hadoop-client 2.7.3 org.apache.hive hive-exec 1.2.1 org.apache.maven.plu ...

  3. Spark编写UDF函数案例

    Spark编写UDF函数案例 一.前述 二.UDF函数 需求:将orders表中 order_dow和order_number进行求和 一.前述 SparkSql中自定义函数包括UDF和UDAF UD ...

  4. Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)

    Hive函数(内置函数和自定义函数) 一.内置函数 1.字符串函数 (1)ascii (2)base64 (3)concat (4)concat_ws (5)format_number (6)subs ...

  5. Hive基本操作,DDL操作(创建表,修改表,显示命令),DML操作(Load Insert Select),Hive Join,Hive Shell参数(内置运算符、内置函数)等

    1.  Hive基本操作 1.1DDL操作 1.1.1    创建表 建表语法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_nam ...

  6. 教程08-微擎系统内置所有函数大全

    微擎系统内置了很多共函数.HTTP请求函数.文件和数据操作函数. 1. 系统公共函数 系统全局公共函数全部位于 framework/function/global.func.php 文件内. 1.1  ...

  7. Hive(11):Hive的函数之内置函数

    目录 0. 相关文章链接 1. 查看系统内置函数 2. 空字段赋值 3. CASE WHEN THEN ELSE END 4. 行转列 5. 列转行 6. 窗口函数 7. Rank 0. 相关文章链接 ...

  8. Hive的基本操作-内置函数

    Hive 函数 内置函数 内容较多,见<Hive官方文档> https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ ...

  9. Hive _偏门常用查询函数(三)附带实例(Rank)

    接上两篇博客 Hive _偏门常用查询函数(一)附带实例 https://blog.csdn.net/qq_41946557/article/details/102904642 Hive _偏门常用查 ...

最新文章

  1. android23 imei 权限,android------关于API 23的权限问题
  2. 从技术演变的角度看互联网后台架构
  3. 【HDU - 3746 】Cyclic Nacklace (KMP,最小循环节问题)
  4. 封装自定义的redis切库工具类ByteArrayRedisTemplate,读取byte数组反序列化成List<Object>
  5. 一不小心就踩坑的fail-fast是个什么鬼?
  6. 【算法实践】搜狗信息流推荐算法交流.pdf(附下载链接)
  7. linux5.8启动mysql命令_linux的定时重启的具体命令? 非常感谢。。。
  8. pyecharts本地文件_pyecharts 模块的简单使用(可视化神器)
  9. 实现HTML的简单压缩
  10. 如何用windows7搭建radius服务器
  11. CPU-Z V1.99 x64 得分
  12. Android Settings 应用二 获取应用消耗的流量
  13. 天兔lepus部署文档
  14. 决策树与XGBOOST
  15. python|简单实现英文单词大小写转化
  16. 【seq2seq】深入浅出讲解seq2seq神经网络模型
  17. 浅谈Spring框架AOP概念
  18. dotNet MSIL中的一些不常见IL指令
  19. Python基础教程让小白从入门到精通(一)爬虫分析
  20. 求伯君—金山电脑公司总裁

热门文章

  1. CodeForces - 670C Cinema(离散化+排序/map,水题)
  2. HihoCoder - 1829 Tomb Raider(暴力)
  3. HDU - 1394 Minimum Inversion Number(树状数组)
  4. python如何删除代码_Python列表删除的三种方法代码分享
  5. 2021已去,2022未来
  6. oracle存储过程多分支怎样写,如何写一个分段提交的存储过程啊
  7. MySQL主主复制 外键_MySQL 组复制介绍
  8. JAVA异常处理正常的逻辑_JAVA异常的思考与总结
  9. 数据结构与算法 | 直接选择排序、双向选择排序
  10. 网络编程之Socket【Python】