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.