hive常用语句


--------------

-----语法

SHOW TABLES;   --查看表

DESCRIBE TABLE_NAME  --查看表的字段

ALTER TABLE TABLE_NAME1 RENAME TO TABLE_NAME2;  --重命名表

ALTER TABLE TABLE_NAME1 ADD COLUMN (COLUMN_NAME DATA_TYPE);  --增加列

ALTER TABLE TABLE_NAME1 DROP PARTITION (COLUMN_NAME1=’…’);  --删除表的分区

SHOW TABLES 关键字 _.*   --正则匹配表名,类似于oracleLIKE

ls;  --类似于ls al

head hive_result ;

CONCAT(字符A,字符B)oracle用法相同;substrceilfloorlogsqrtroundto_data等常用函数与oracle相同;

REGEXPREGEXP_REPLACEDAY,DAYOFMONTH,MONTH,YEARunix_timestampfrom_unixtimedate_adddate_subdatediff的用法

关联(JOIN)语法与oracle相同,只是ON后面的关联条件要在()内,未验证不加()是否可以,或者多条件关联是否可以,加限定条件是否可以

计算表扫描时间:SELECT AVG(VIEWTIME) FROM TABLE_NAME1 
TABLESAMPLE(BUCKET OUT OF Y);  --Y为桶数的倍数或者因数;实现的是每Y桶,选第X

------插入数据

INSERT OVERWRITE   TABLE TABLE_NAME

SELECT  A.*

FROM  TABLE_NAME1 A

WHERE  A.COLUMN_NAME=

INSERT OVERWRITE TABLE TABLE_NAME

SELECT A.COLUMN_NAME1,COUNT(A.COLUMN_NAME2)

FROM TABLE_NAME1 A

GROUP BY A.COLUMN_NAME1;

------建表

   1

CREATE TABLE TABLE_NAME (COLUMN_NAME1 INT,COLUMN_NAME2 INT)  --表名、字段名、字段类型

ROW  FORMAT DELIMITED    --

FIELDS TERMINATED BY ,  --解析表的方式以,为分隔符

STORED AS TEXTFILE;    --存储方式,以文本方式存储

   2

CREATE TABLE TABLE_NAME (COLUMN_NAME1 DATA_TYPE,COLUMN_NAME2 DATA_TYPE);

   3

CREATE TABLE TABLE_NAME (COLUMN_NAME1 DATA_TYPE,COLUMN_NAME2 DATA_TYPE COMMENT ‘…’  --COLUMN_NAME2字段的注释

COMMENT ‘…’    --对表加注释

PARTITION BY (COLUMN_NAME3 STRING,COLUMN_NAME4 STRING) --COMUMN_NAME3 COLUMN_NAME4进行分区(有疑问)

CLUSTERED  BY (COLUMN_NAME1) INTO N(2N次方BUCKETS --相当于oracle中按某一列进行hash

ROW  FORMAT  DELIMITED    --设置使用行存储方式存储数据,若无则使用换行符进行换行

      FIELDS TERMINATED BY \t  --字段之间用制表符隔开

      LINES TERMINATED BY \n   --行行之间用换行符隔开

STORED AS SEQUENCEFILE;   --HIVE目前只支持textfilesequencefile(压缩格式,具有更高的性能);

    4

CREATE EXTERNAL TABLE TABLE_NAME(COLUMN_NAME1 DATA_TYPE,COLUMN_NAME2 DATA_TYPE)

LOCATION 目录文件地址  --可把表创建在指定位置

------加载数据(加载数据时,如果有违反表的定义的,则会被放置为NULL

LOAD  DATA  LOCAL  INPATH  文件名

OVERWRITE    INTO  TABLE  TABLE_NAME; 

-----统计{支持count1),不支持count*}

SELECT  COUNT(1)  FROM TABLE_NAME;

SELECT FROM TABLE_NAME WHERE COUNT>10 AND LIMIT<10;

-----删除表

DROP TABLE TABLE_NAME;

--分区和桶

HIVE中的分区带来的好处类似于关系型数据库中的索引;感觉更类似于oracle中的范围和时间分区;

HIVE 中的桶对随机抽样数据的查询更高效,感觉类似于oracle中的hash分区;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值