当前位置: 首页 > news >正文

掌握Hive函数[2]:从基础到高级应用

目录

高级聚合函数

多进一出

1. 普通聚合 count/sum...

2. collect_list 收集并形成list集合,结果不去重

3. collect_set 收集并形成set集合,结果去重

 案例演示

1. 每个月的入职人数以及姓名

 炸裂函数

 概述

 案例演示

1. 数据准备

1)表结构

2)建表语句

3)装载语句

2. 需求

1)需求说明

2)答案


高级聚合函数

多进一出

(多行传入,一个行输出)

1. 普通聚合 count/sum...
2. collect_list 收集并形成list集合,结果不去重
hive>select sex,collect_list(job)fromemployeegroup by sex

结果

女	["行政","研发","行政","前台"]
男	["销售","研发","销售","前台"]
3. collect_set 收集并形成set集合,结果去重
hive>select sex,collect_set(job)fromemployeegroup by sex

结果

女	["行政","研发","前台"]
男	["销售","研发","前台"]

 案例演示

1. 每个月的入职人数以及姓名
hive>selectmonth(replace(hiredate,'/','-')) as month,count(*) as cn,collect_list(name) as name_listfromemployeegroup bymonth(replace(hiredate,'/','-'))

结果

month  cn  name_list
4	  2	["宋青书","周芷若"]
6	  1	["黄蓉"]
7	  1	["郭靖"]
8	  2	["张无忌","杨过"]
9	  2	["赵敏","小龙女"]

 炸裂函数

 概述

 案例演示

1. 数据准备
1)表结构
moviecategory
《疑犯追踪》悬疑,动作,科幻,剧情
《Lie to me》悬疑,警匪,动作,心理,剧情
《战狼2》战争,动作,灾难
2)建表语句
hive (default)>create table movie_info(movie string,   --电影名称category string  --电影分类
) 
row format delimited fields terminated by "\t";
3)装载语句
insert overwrite table movie_info
values ("《疑犯追踪》", "悬疑,动作,科幻,剧情"),("《Lie to me》", "悬疑,警匪,动作,心理,剧情"),("《战狼2》", "战争,动作,灾难");
2. 需求
1)需求说明

根据上述电影信息表,统计各分类的电影数量,期望结果如下:

剧情2
动作3
心理1
悬疑2
战争1
灾难1
科幻1
警匪1
2)答案
selectcate,count(*)
from
(selectmovie,catefrom(selectmovie,split(category, ',') catesfrom movie_info)t1 lateral view explode(cates) tmp as cate
)t2
group by cate;
http://www.lryc.cn/news/436287.html

相关文章:

  • 水壶问题记录
  • spring综合性利用工具-SpringBootVul-GUI(五)
  • 2024年9月12日(k8s环境及测试 常用命令)
  • 卫生间漏水原因很多,切莫病急乱投医
  • IEEE 802.11a OFDM系统的仿真(续)
  • Linux cut命令详解使用:掌握高效文本切割
  • c++11新特性——endable_shared_from_this
  • 小程序的右侧抽屉开关动画手写效果
  • vue3中el-table中点击图片放大时,被表格覆盖
  • GO学习笔记(4) strconv/time
  • 课程管理系统-数据库-基于MySQL的数据库课程设计
  • 降维打击 华为赢麻了
  • [数据集][目标检测]汽车头部尾部检测数据集VOC+YOLO格式5319张3类别
  • python 生成的代码,需要帮我生成一个直接在一台没有依赖的电脑上运行的 包
  • 【Linux】操作系统与进程
  • 【Linux】 LTG:移动硬盘部署Ubuntu24.04
  • Android的logcat日志详解
  • 【Linux】:信号的保存和信号处理
  • 深入理解Java虚拟机:Jvm总结-Java内存区域与内存溢出异常
  • 跨境电商必备保护账号的4个网络环境设置
  • Python+requests接口自动化测试框架实例教程
  • 【网络安全】DNS重绑定原理详析
  • C语言初识编译和链接
  • TrinityCore环境搭建
  • Proteus 仿真设计:开启电子工程创新之门
  • microchip dspic3一些奇怪问题
  • FinOps原则:云计算成本管理的关键
  • JavaScript之如何优化模板字符串的性能
  • 不能将类型“null”分配给类型“number | undefined”。ts(2322)
  • Nginx部署前端Vue项目详细教程