truncate命令(Hive vs SQL)

时间:2014-06-20 09:29:29

标签: mysql sql hadoop truncate hiveql

我期待SQL和HIVE中截断的相同行为。 但它与众不同。 我想确认我是否错误地认识到它

1)在SQL中,以下命令删除表并再次创建。如果存在,则删除所有分区

mysql> truncate table t1;

2)在HIVE中,以下命令只是删除表中的数据。它不会删除现有分区。我们需要手动删除它。

hive> truncate table t1;

我发现了另外一个问题,如果我们将列添加到分区表并更改它。然后在向表中插入覆盖数据时会出现问题。找到的办法是删除表中所有现有的分区。

这是HIVE(版本0.13)中的问题吗? 使用truncate进行HIVE和SQL有什么区别?

1 个答案:

答案 0 :(得分:1)

在HIVE truncate table中将删除表或分区中的所有行。

分区不会被删除。我们必须手动删除这些分区。

目前,目标表应该是本机/托管表,否则将抛出异常。