网站流量日志分析—扩展—hive 函数分类(udf、 udtf 、vdaf)|学习笔记

简介: 快速学习网站流量日志分析—扩展—hive 函数分类(udf、 udtf 、vdaf)

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第三阶段) 网站流量日志分析—扩展—hive 函数分类(udf、 udtf 、vdaf)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/695/detail/12204


网站流量日志分析—扩展—hive 函数分类(udf、 udtf 、vdaf)


作为一个面向分析的数据仓库,hive 除了支持它内置的函数之外还开放了接口让用户自定函数。整体来看可以根据输出的行数分为三个类别 udf、 udtf 、udaf ,接下来看这三种类别函数有什么区别。

udf 通常把函数成为普通函数,普通函数所描述的是实现一进一出,输入一行,输出一行,比如说 substring 截取。

为了更好理解,首先要明白在 hive 函数,可以分为两大块,第一个叫做内置的函数,包含原有的 hive substring 等,另外一个叫做用户自定义函数,这两位函数统称 hive 函数,可以分为三个类别,第一个叫做 udf ,普通函数,substring 函数很简单,穿入一个字符串,指定从 a 开始截取到 b ,就可以返回它一个具体的内容,比如 hello,这就是一个标准的一进一出。再比如,以刚才的参考参数来说还可以去自定义 udf 函数, hive 当中提供接口,当中输入一行,一个a ,一个 b ,返回当中最小的,这也是所谓的一进一出。称之为普通函数。

第二类函数叫做 udtf ,当中的 t 很重要,叫做 table generating 表深层函数,这类函数他所描述的是输入一行,输出多行,输出多行之后,这多行看起来像一个表,所以把它叫做表深层函数,接下来举个例子,这个字段不是普通的字段,它是一个 array 数主字段,里面放着北京、上海、南京、合肥,这个 location 在 hive 当中是复核类型叫做 array string,针对这样一个字段,如果这时候使用 hive 一个类字 udtf 函数叫做explode,它作用与它,变成什么样,这时候传一个函数叫做 explode,把 location 传给它,这个函数就是一个标准的 udtf 函数,把宿主当中的每一个元素变成一行,比如北京一行,上海一行,南京一行,最后一个是合肥。经过这样一个拆分,输入的是一行,输出是四行,一进多输,数据完成了表深层函数,这样就看起来后面数据非常像一个新的表结构,把它叫做表深层函数。这类函数是当下比较陌生的但是确实存在。

image.png

接下来第三类函数叫做 udaf ,这个 a 非常重要,叫做 aggregating 聚合,这类函数不管是内置的还是用户自定义的,它称之为聚合函数,就是通常所说的 sum 这类函数,这类函数通常可以对多行产生作用,就是输入多行输出一行,多进一出,sum 求和不管输入多少行,把多少行加起来求和,多进一出。

UDAF聚合函数,输入多行,输出一行,举例,有 name、allen、张三、李四以及王五,接下针对字段使用 count 聚合函数进行统计,统计结果是多少,count 完成之后有几条记录,是五条记录,输入了四条记录,返回了一条记录,这就是输入多行输出一行。

image.png

除了它内置的函数之外,讲义提供了如何自定义实现这些,准确来说这个 ud 叫做用户自定义,再次强调是自定义还是内置的实现,整体来看函数可以根据所有输出分为三个过程,普通的,一进一出叫做 udf, 要么是一进多出的叫做 udtf,表深层函数,要么称之为 udaf, 表聚合函数,这是针对 hive 当中众多函数的具体划分根据输入输出的多少。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
390 4
|
SQL
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(二)
586 2
|
SQL JavaScript 前端开发
Hive根据用户自定义函数、reflect函数和窗口分析函数
Hive根据用户自定义函数、reflect函数和窗口分析函数
379 6
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
SQL Java HIVE
Hive高频面试题之UDTF实现多行输出
Hive高频面试题之UDTF实现多行输出
584 0
|
SQL Java 程序员
Hive反射函数的使用-程序员是怎么学UDF函数的
Hive反射函数的使用-程序员是怎么学UDF函数的
220 0
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
643 1
|
SQL 分布式计算 大数据
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
本文深入介绍 Hive 与大数据融合构建强大数据仓库的实战指南。涵盖 Hive 简介、优势、安装配置、数据处理、性能优化及安全管理等内容,并通过互联网广告和物流行业案例分析,展示其实际应用。具有专业性、可操作性和参考价值。
大数据新视界 --大数据大厂之Hive与大数据融合:构建强大数据仓库实战指南
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。
1388 6