如何删除hive表记录,我们有100条记录,我只需要删除10条记录, 当我使用
dfs -rmr table_name整个表已删除 如果有机会在Hbase中删除,发送到Hbase中的数据,
答案 0 :(得分:1)
您不能直接从Hive表中删除, 但是,您可以使用一种替代方法来覆盖Hive表
insert overwrite into table_name
select * from table_name
where id in (1,2,3,...)
答案 1 :(得分:0)
要删除表中的记录,可以使用hive客户端的SQL语法:
DELETE FROM tablename [WHERE expression]
答案 2 :(得分:0)
使用in子句
尝试使用where和keyDELETE FROM tablename where id in (select id from tablename limit 10);
示例: - 强> 我在hive中有酸交易表
select * from trans;
+-----+-------+--+
| id | name |
+-----+-------+--+
| 2 | hcc |
| 1 | hi |
| 3 | hdp |
+-----+-------+--+
现在我只想删除2然后我的删除语句将是
delete from trans where id in (select id from trans limit 1);
<强>结果: - 强>
select * from trans;
+-----+-------+--+
| id | name |
+-----+-------+--+
| 1 | hi |
| 3 | hdp |
+-----+-------+--+
所以我们刚刚删除了第一条记录,你可以指定限制10,然后hive可以删除前10条记录。
你可以指定orderby ...你的子查询中的一些其他子句,如果你只需要删除前10个具有特定顺序(如删除id从1到10)。
答案 3 :(得分:0)
您无法从Hive表中删除数据,因为该数据已被写入HDFS的文件中。您只能删除将删除HDFS中目录的分区。因此,最佳做法是在以后要删除分区时使用分区。