hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
GROUP BY
按照某些字段的值进行分组,有相同值放到一起
SELECT col1 [,col2] ,count(1),sel_expr(聚合操作)
FROM table
WHERE condition -->Map端执行
GROUP BY col1 [,col2] -->Reduce端执行
[HAVING] -->Reduce端执行
从表中读取数据,执行where条件,以col1列分组,把col1列的内容作为key,其他列值作为value,上传到reduce,在reduce端执行聚合操作和having过滤。
常用聚合操作
1. count:计数
- count(*) 所有值不全为NULL时,加1操作
- count(1) 不管有没有值,只要有这条记录,值就加1
- count(col) col列里面的值为null,值不会加1,这个列里面的值不为NULL,才加1
2. sum:求和
sum(可转成数字的值) 返回bigint
3. avg:求平均值
<
本文详细介绍了Hive的数据仓库工具特性,包括GROUP BY、JOIN、MAPJOIN、ORDER BY、DISTRIBUTE BY和SORT BY等操作。通过实例解析了各种查询语句的工作原理和注意事项,如JOIN操作类型、MAPJOIN的内存加载、ORDER BY的全局排序以及DISTRIBUTE BY与GROUP BY、SORT BY的区别。还探讨了如何解决数据倾斜和优化查询效率。
最低0.47元/天 解锁文章
325

被折叠的 条评论
为什么被折叠?



