hive删除表数据命令_drop删除表的语句[通俗易懂]

hive删除表数据命令_drop删除表的语句[通俗易懂]Hive删除操作主要分为几大类:删除数据(保留表)、删除库表、删除分区

Hive删除操作主要分为几大类:删除数据(保留表)、删除库表、删除分区。我将以下图为例清空iot_devicelocation中的数据,之后再删除表、库等。

hive删除表数据命令_drop删除表的语句[通俗易懂]

首先来看一下iot_deivcelocation中的数据。select * from iot_deivcelocation。

hive删除表数据命令_drop删除表的语句[通俗易懂]

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

hive> truncate table iot_devicelocation;

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

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

hive删除表数据命令_drop删除表的语句[通俗易懂]

二、删除表

hive> drop table if exists iot_devicelocation;

drop table if exists table_name;

hive删除表数据命令_drop删除表的语句[通俗易懂]

三、删除库

hive> drop database if exists xpu123;

 drop database if exists database_name;但是根据第二步操作结束,我们的数据库xpu123中,还存在iot_deviceenergytype表,因此,如果直接删除,会报以下错误。Hive会提醒你,将要执行删除操作的xpu123的库里面还存在tables。

hive删除表数据命令_drop删除表的语句[通俗易懂]

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

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

hive删除表数据命令_drop删除表的语句[通俗易懂]

四、删除hive分区

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

hive> alter table tablename drop partition(load_date='2019-01-01');

 

今天的文章hive删除表数据命令_drop删除表的语句[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/77711.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注