HIVE中的常用和不常用的函数总结及hive中的常见问题(自用)

笛卡尔积

假设A和B是两个集合,存在一个集合,它的元素是用A中元素为第一元素,B中元素为第二元素构成的有序二元组,这个集合称为集合A和集合B的笛卡尔积,记为A X B。

eg:假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

可以用内连接的方式进行笛卡尔积的实现

explode函数

explode函数就是把整个数组的元素进行分解,分解成一个新表(虚拟的),就是把一行好多好多字放到好几行里面去,成一个新的表

特别注意,explode函数只能查询一个字段,多字段查询就会报错。

lateral view 完美的解决了此问题,加上lateral view后就可以多个字段一起查询了

having 和where 的区别

HAVING 关键字和 WHERE 关键字都可以用来过滤数据,且 HAVING 支持 WHERE 关键字中所有的操作符和语法。

但是 WHERE 和 HAVING 关键字也存在以下几点差异:

1.一般情况下,WHERE 用于过滤数据行,而 HAVING 用于过滤分组。

2.WHERE 查询条件中不可以使用聚合函数,而 HAVING 查询条件中可以使用聚合函数。

3.WHERE 在数据分组前进行过滤,而 HAVING 在数据分组后进行过滤 。

4.WHERE 针对数据库文件进行过滤,而 HAVING 针对查询结果进行过滤。也就是说,WHERE 根据数据表中的字段直接进行过滤,而 HAVING 是根据前面已经查询出的字段进行过滤。

5.WHERE 查询条件中不可以使用字段别名,而 HAVING 查询条件中可以使用字段别名。

相关推荐
Htr_11 小时前
Outcome 核心概念与实战应用指南
大数据·hadoop·apache
SelectDB技术团队16 小时前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据仓库·apache
小马过河R2 天前
数据仓库入门:是什么、怎么做、和数据库有什么区别?
大数据·数据库·数据仓库·架构·驾驭工程·fde
BYSJMG2 天前
计算机毕业设计选题推荐|【基于大数据的城市噪音数据可视化分析】Spark+K-Means+FP-Growth实战
大数据·hadoop·信息可视化·spark·课程设计
慧一居士3 天前
Apache StreamPark 功能和使用场景介绍、使用步骤详细示例
数据仓库
牛奶咖啡133 天前
大数据Hadoop运维应用实践——Hadoop平台常见问题与故障汇总、系统调优、网络规划与硬件存储选型
大数据·hadoop·hadoop集群操作系统调优·hadoop集群运维问题汇总·hadoop集群硬件规划·大数据平台网络规划·大数据平台硬件存储选型
雨晨源码(同名B站)3 天前
基于Python的网易云音乐评论数据情感化分析系统 音乐爬虫信息可视化 |SnowNLP评论情感分析
开发语言·hadoop·爬虫·python·信息可视化·毕业设计
赤土 炙焱4 天前
hiveserver2启动失败,磁盘满了
hive·hadoop
慧一居士4 天前
Hologres 功能及使用场景介绍,实践详细步骤示例
数据仓库
哥本哈士奇4 天前
dbt+SQLServer构建数据仓库(10):macro 以及 data vault的应用实例
大数据·数据仓库·sqlserver