删除行
A表数据如下
id(String) name(String)
----------------------------
1 aaa
2 bbb
3 ccc
-----------------------------
要求删除2 bbb
hive 脚本如下:
insert overwrite table A select id,name from A where id !=2;
TRUNCATE: truncate 用于删除所有的行,这个行为在 Hive 元存储删除数据是不可逆的
DROP: 删除 hive 中的表
truncate 不能删除外部表!因为外部表里的数据并不是存放在 Hive Meta store 中
truncate:
truncate table table_name;
例子:
truncate table employees;
Hive 1.x 版本中没有 delete 操作
2.x 版本更新后支持,如果一个表要实现 update 和 delete 功能,该表就必须支持 ACID,而支持 ACID,就必须满足以下条件: 1、表的存储格式必须是 ORC(STORED AS ORC);
2、表必须进行分桶
3、Table property 中参数 transactional 必须设定为 True