hive表的常见操作

在这里插入图片描述

一、 创建表
1)创建外部表

CREATE EXTERNAL TABLE ad_rule_result(
  source string COMMENT '',
 entity_type int COMMENT '')
 PARTITIONED BY(day string,hour string)
 ROW FORMAT DELIMITED
 FIELDS TERMINATED BY ','
 LOCATION 'hdfs://mycluster/user/vc/public/ad_rule_result';

2)创建内部表:

CREATE TABLE dw.zjmj_only_refund_money_risk_result_df(
 buyer_id string COMMENT '买家ID',
 refund_order_count int COMMENT '仅退款订单数',
 order_count int COMMENT '有效订单数',
 refund_order_rate float COMMENT '仅退款订单占比',
 solar_name string COMMENT '处罚名',
 day string COMMENT ''
 ) COMMENT '仅退款规则命中的买家'
 LOCATION 'hdfs://user/hive/warehouse/dw.db/zjmj_only_refund_money_risk_result_df'

3)从老表中复制一个表结构出来

create table if not exists temp.ad_rule_result like vc.ad_rule_result  

4)备份表

create table temp.ad_rule_result_2  as 
SELECT * FROM vc.ad_rule_result

二、删除数据
1)删除表

DROP TABLE IF EXISTS dw.zjmj_only_refund_money_risk_result_df

2)删除某个分区


ALTER TABLE vc.ad_rule_result DROP PARTITION (day='2020-08-10' , hour='21')

3)清空表中数据

truncate table vc.ad_rule_result

三、插入数据
1)从文件中插入数据到hive表中

load data inpath   '/user/vc/xxx/part-00001_test' into table vc.ad_rule_result   partition(day='2020-08-10',hour='01')

2)将查询到的数据插入表中

insert overwrite table dw.zjmj_only_refund_money_risk_result_df  
select * from dw.zjmj_only_refund_money_risk_result_df where day !='2020-07-30'

3)将查询到的数据插入到某个分区(根据数据大小进行小文件合并)

set mapred.max.split.size=256000000;
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.size.per.rack=100000000;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

insert overwrite table vc.ad_rule_result partition(day='2020-08-10', hour='17') 
select source,entity_type, entity_id, rule, hit_time, feature  from vc.ad_rule_result  where day='2020-08-10' and hour='17';

四、 修改表

1)删除某列
hive 没有删除字段的命令,但是可以用replace 来实现

alter table  vc.ad_rule_result_back replace columns(
 source string COMMENT '',
 entity_type int COMMENT '',
 entity_id string COMMENT '',
 rule string COMMENT '',
 hit_time bigint COMMENT '',
 feature string COMMENT '');
  1. 添加一个列
alter table vc.ad_rule_result add columns(mark string) 

3)更改表名

ALTER TABLE table_name RENAME TO new_table_name;

五、查看表信息
1)查看建表语句

show create table test.stu

2)查看表的结构

desc table test.stu

3)查看表的分区列表

show  partitions  test.stu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值