Hive 不支持直接使用 SQL 語句進行條件刪除。但是,你可以通過以下兩種方法實現條件刪除:
DELETE 語句結合 WHERE 子句(僅適用于 Hive 2.3.0 及更高版本):-- 假設有一個名為 my_table 的表,包含字段 id、name 和 age
-- 刪除年齡大于 30 的記錄
DELETE FROM my_table WHERE age > 30;
注意:在執行此操作之前,請確保備份您的數據,以防意外刪除。
INSERT [OVERWRITE] TABLE 語句將滿足條件的記錄插入到另一個表中,然后刪除原表:-- 假設有一個名為 my_table 的表,包含字段 id、name 和 age
-- 創建一個新表,用于存儲滿足條件的記錄
CREATE TABLE my_table_backup AS SELECT * FROM my_table WHERE age <= 30;
-- 刪除原表
DROP TABLE my_table;
-- 將滿足條件的記錄插入回原表
INSERT OVERWRITE TABLE my_table SELECT * FROM my_table_backup;
-- 刪除備份表
DROP TABLE my_table_backup;
請注意,這種方法會創建一個新的表來存儲滿足條件的記錄,而不是在原表上進行修改。在執行此操作之前,請確保備份您的數據,以防意外刪除。