hive ----- hive的常用操作

Posted water-sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive ----- hive的常用操作相关的知识,希望对你有一定的参考价值。

一、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的常用操作的主要内容,如果未能解决你的问题,请参考以下文章

Hive 系列—— Hive 常用 DDL 操作

hive中 常用操作

hive的常用操作

hive常用操作一

Hive 常用函数

入门大数据---Hive常用DDL操作