博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive语法手册
阅读量:4565 次
发布时间:2019-06-08

本文共 1492 字,大约阅读时间需要 4 分钟。

Hive语法

Order By语法

Order By语法

colOrder: ( ASC | DESC )orderBy: ORDER BY colName colOrder? (',' colName colOrder?)*query: SELECT expression (',' expression)* FROM src orderBy

在使用"order by"是有一些限制,在限制模式(例如:=strict), order by 后必须加油"limit"条件.

如果设置hive.mapred.mode为nonstrict就可以不加limit条件。原因是为了强制排序所有结果,只能有一个reducer来排序最后的输出。如果要排序的行数过大,单个reducer将花费很长时间才能完成。

注意:列是通过字段名指定, 而不是位置数。 但是在 Hive 0.11.0版本及之后, 如果设置为true(默认值为false) 列可以通过位置指定。

Sort By语法

colOrder: ( ASC | DESC )sortBy: SORT BY colName colOrder? (',' colName colOrder?)*query: SELECT expression (',' expression)* FROM src sortBy

 Hive使用SORT BY在将数据给reducer之前对列进行排序。排序的顺序讲根据字段类型。如果字段为numeric那么将根据数字进行排序,如果字段为string类型,那么将根据字典顺序排序。

Sort By和Order By的不同点

Hive支持SORT BY在每个reducer中的数据进行排序。"order by" 和 "sort by"不同点在于前者保证全局排序,后者仅仅保证在一个reducer内的排序。如果有多个reducer那么 "sort by"可能给出部分最终排序结果

如下例子:

SELECT key, value FROM src SORT BY key ASC, value DESC

这个查询有两个reducer, 输出结果如下

-- reducer one0   50   33   69   1-- reducer two0   40   31   12   5

Cluster By 和 Distribute By 语法

Cluster By 和 Distribute By 主要用于 .但是有时在一些select中需要分区和排序输出子查询的时候也非常有用。

Cluster By 是 Distribute By 和 Sort By一起使用的快捷语句。

Hive使用Distribute By对列进行分发到reducer。所有的相同列值的数据将会分发同一个reducer中。但是Distribute By

例如,我们使用Distributing By x对如下的5行数据分配导2个reducer:

x1x2x4x3x1

结果为:

-- reducer 1x1x2x1-- reducer 2x4x3

对应的,如果我们使用Cluster By,两个reducer将会有如下结果:

-- reducer 1x1x1x2-- reducer 2x3x4

 

  

参考源地址:

                  https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy

转载于:https://www.cnblogs.com/cfox/p/4778758.html

你可能感兴趣的文章
全局变量、局部变量、静态全局变量、静态局部变量的区别
查看>>
一道面试题及扩展
查看>>
Unity 3D 我来了
查看>>
setup elk with docker-compose
查看>>
C++ GUI Qt4学习笔记03
查看>>
Java基础回顾 —反射机制
查看>>
c# 前台js 调用后台代码
查看>>
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>
$.ajax()方法详解
查看>>
day42
查看>>
jquery操作select(增加,删除,清空)
查看>>
Sublimetext3安装Emmet插件步骤
查看>>
MySQL配置参数
查看>>
全面理解Java内存模型
查看>>
A - Mike and palindrome
查看>>
DOTween教程
查看>>
java web中java和python混合使用
查看>>
创建学员类和教员类
查看>>
Cookie和Session的作用和工作原理
查看>>
字符串操作
查看>>