Hive删除操作主要分为几大类:删除数据(保留表)、删除库表、删除分区。我将以下图为例清空iot_devicelocation中的数据,之后再删除表、库等。
首先来看一下iot_deivcelocation中的数据。select * from iot_deivcelocation。
一、仅删除表中数据,保留表结构
hive> truncate table iot_devicelocation;
truncate操作用于删除指定表中的所有行,相当于delete from table where 1=1.表达的是一个意思。
注意:truncate 不能删除外部表!因为外部表里的数据并不是存放在Hive Meta store中。创建表的时候指定了EXTERNAL,外部表在删除分区后,hdfs中的数据还存在,不会被删除。因此要想删除外部表数据,可以把外部表转成内部表或者删除hdfs文件。