码迷,mamicode.com
首页 > 其他好文 > 详细

hive (二) ----- hive的常用操作

时间:2019-01-04 18:00:38      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:需要   个数   div   倒序   mysql   from   centos   不同   row   

一、hive操作

1.创建表

CREATE TABLE t3(id int,name string,age int) PARTITIONED BY (Year INT, Month INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘ ;

2.导出表结构+数据

EXPORT TABLE customers TO ‘/user/centos/tmp.txt‘;        

3.排序

1)order全排序

order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)。

只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。

select * from orders order by id asc ;

2)sort,map端排序,本地有序。

sort by不是全局排序,其在数据进入reducer前完成排序。

因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1, 则sort by只保证每个reducer的输出有序,不保证全局有序。

select * from orders sort by id asc ;

3)distribute by

类似于mysql的group by,进行分区操作。

按照指定的字段对数据进行划分到不同的输出reduce文件中。

select cid , ... from orders distribute by cid sort by name ;            //注意顺序.
select id,orderno,cid from orders distribute by cid sort by cid desc ;

4)cluster by

除了具有 distribute by 的功能外还兼具 sort by 的功能。

但是排序只能是倒序排序,不能指定排序规则为asc 或者desc

cluster by ===>  distribute by cid sort by cid

4.设置作业参数

set hive.exec.reducers.bytes.per.reducer=xxx            //设置reducetask的字节数。
set hive.exec.reducers.max=0                    //设置reduce task的最大任务数
set mapreduce.job.reduces=0                    //设置reducetask个数。

5.函数

mysql>select concat(‘tom‘,1000) ;
$hive>select current_database(),current_user() ;
$hive>tab                                            //查看帮助

 

hive (二) ----- hive的常用操作

标签:需要   个数   div   倒序   mysql   from   centos   不同   row   

原文地址:https://www.cnblogs.com/water-sky/p/10221248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!