ODPS不支持直接通过delete语句删除数据。
对于非分区表
通过“TRUNCATE TABLE table_name;”语句清空表数据,也可以用覆盖写的功能实现类似的功能。
- 如要删除TableA表里的Col=1的数据,使用如下命令即可
INSERT OVERWRITE TABLE TableA SELECT FROM TableA WHERE Col <> 1;
- 要删除全部数据,类似的方式:
INSERT OVERWRITE TABLE TableA SELECT FROM TableA WHERE 1=2;
对于分区表
只需要要删除对应的分区即可删除对应的数据:
ALTER TABLE table_name DROP [IF EXISTS] partition_spec;