hive的查询语法

1、hive的查询语法一大部分跟mysql类似

2、hive的一些排序

order by 全局排序:所有的数据都去往一个reduce里面去,会造成效率低下,慎用
sort by 每一个reduce内部进行排序,也就是局部有序,但是全局无序
distribured by 按照指定的字段进行hash 散列,按照这个字段进行取hash值,然后均匀的分到不同的reduce里面去
(字段.hasCode & Integer.MAX_VALUE) % numReduceTask

clustered by 除了具有distributed by的功能之外,还会对指定的字段进行排序,不能单独的指定 desc 或者asc 只有一种排法,就是asc

如果sort by的字段与distributed by 的字段相同,那么可以用 clustered by 来进行替代

3、havingwhere不同点

1where针对表中的列发挥作用,查询数据;having针对查询结果中的列发挥作用,筛选数据。

2where后面不能写分组函数,而having后面可以使用分组函数。

3having只用于group by分组统计语句。

猜你喜欢

转载自www.cnblogs.com/nacyswiss/p/12611789.html