遇到这样一个问题:hive> desc ljn001;OKname stringvalue inthive> select * from ljn001;OKwang5 92zhang3 87li4 73然后我想使用UDF实现的分析函数row_number去查询value最小的name。如果不清楚UDF实现row_number的原来或者不知道如何使用row_number,请参考:http://www.linuxidc.com/Linux/2013-11/92554.htm查询SQL如下:select name from (select name,row_number(1) as rn from (select * from ljn001 order by value ) a ) a where rn = 1;但是结果却意想不到:OKwang5竟然把value最大的给取出来了!不筛选rn再看一下:select name,rn from (select name,row_number(1) as rn from (select * from ljn001 order by value ) a ) a;OKli4 1zhang3 2wang5 3明明是li4对应的1,为什么筛选rn = 1却得到的是wang5 ?看一下执行计划,豁然开朗了:explain select name from (select name,row_number(1) as rn from (select * from ljn001 order by value ) a ) a where rn = 1;OKSTAGE DEPENDENCIES: Stage-1 is a root stage Stage-0 is a root stageSTAGE PLANS: Stage: Stage-1 Map Reduce Alias -> Map Operator Tree: a:a:ljn001 TableScan alias: ljn001 Filter Operator predicate: expr: (row_number(1) = 1) type: boolean Select Operator expressions: expr: name type: string expr: value type: int outputColumnNames: _col0, _col1 Reduce Output Operator key expressions: expr: _col1 type: int sort order: + tag: -1 value expressions: expr: _col0 type: string expr: _col1 type: int Reduce Operator Tree: Extract Select Operator expressions: expr: _col0 type: string expr: row_number(1) type: bigint outputColumnNames: _col0, _col1 Filter Operator predicate: expr: (_col1 = 1) type: boolean Select Operator expressions: expr: _col0 type: string outputColumnNames: _col0 File Output Operator compressed: true GlobalTableId: 0 table: input format: org.apache.Hadoop.mapred.TextInputFormat output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat Stage: Stage-0 Fetch Operator limit: -1
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92553p2.htm
Hive 的详细介绍:请点这里
Hive 的下载地址:请点这里
相关阅读:基于Hadoop集群的Hive安装 http://www.linuxidc.com/Linux/2013-07/87952.htmHive内表和外表的区别 http://www.linuxidc.com/Linux/2013-07/87313.htmHadoop + Hive + Map +reduce 集群安装部署 http://www.linuxidc.com/Linux/2013-07/86959.htmHive本地独立模式安装 http://www.linuxidc.com/Linux/2013-06/86104.htmHive学习之WordCount单词统计 http://www.linuxidc.com/Linux/2013-04/82874.htm
Hive 实现 udf row_number 以及遇到的问题Hive中使用自定义函数(UDF)实现分析函数row_number的功能相关资讯 Hive Hive udf