Hive操作——删除表(drop、truncate)

Hive删除操作主要分为几大类:删除数据(保留表)、删除库表、删除分区。

一、仅删除表中数据,保留表结构

hive> truncate table 表名;
truncate操作用于删除指定表中的所有行,相当于delete from table where 1=1.表达的是一个意思。

注意:truncate 不能删除外部表!因为外部表里的数据并不是存放在Hive Meta store中。创建表的时候指定了EXTERNAL,外部表在删除分区后,hdfs中的数据还存在,不会被删除。因此要想删除外部表数据,可以把外部表转成内部表或者删除hdfs文件。

二、删除表

hive> drop table if exists 表名;
drop table if exists table_name;

三、删除库

hive> drop database if exists 库名;

注意如果库里有表会报错

解决这个错误有两种方法:一、就是很简单的将所有表先删除完,再删除库。

另外一种就是使用下述的方法:使用cascade关键字执行强制删库。drop database if exists 库名 cascade;

四、删除hive分区

alter table table_name drop partition (partition_name='分区名')

你可能感兴趣的:(Hive操作——删除表(drop、truncate))