当前位置: 首页 > 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;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 深入理解.NET 中的 Task 和 Task.WhenAll
  • RTR_Chapter_4_上半部分
  • 组播 2024 9 11
  • cas单点登录流程揭密
  • 【C++】STL容器-string的遍历
  • pdf删除一页怎么删除?5种方法详细讲解,pdf删除页面实用技巧分享!
  • 网站收集-
  • 汽车免拆诊断案例 | 沃尔沃V40 1.9TD断续工作
  • QT绘图控件
  • Python中的内存池机制
  • 【C++】C++ STL 探索:List使用与背后底层逻辑
  • 坐牢第三十六天(QT)
  • Python编程实例-正则表达式在数据清洗中的使用技巧
  • Unity6的GPUDriven渲染到底是什么?
  • 基于CNN卷积神经网络迁移学习的图像识别实现
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Android优雅地处理按钮重复点击
  • CSS 专业技巧
  • git 常用命令
  • Java反射-动态类加载和重新加载
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • MySQL QA
  • Netty源码解析1-Buffer
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Redis在Web项目中的应用与实践
  • VuePress 静态网站生成
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 仿天猫超市收藏抛物线动画工具库
  • 构建工具 - 收藏集 - 掘金
  • 理清楚Vue的结构
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 一个SAP顾问在美国的这些年
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • gunicorn工作原理
  • HanLP分词命名实体提取详解
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • #android不同版本废弃api,新api。
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (生成器)yield与(迭代器)generator
  • (五)关系数据库标准语言SQL
  • (转)memcache、redis缓存
  • (转)setTimeout 和 setInterval 的区别
  • .DFS.
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET连接数据库方式
  • .NET是什么
  • .net知识和学习方法系列(二十一)CLR-枚举
  • @31省区市高考时间表来了,祝考试成功
  • @EventListener注解使用说明