我期望在sql和hive中有相同的truncate行为。但它是不同的。我想确认一下我是不是看错了
1) 在sql中,以下命令将删除表并重新创建。如果存在,则删除所有分区
mysql> truncate table t1;
2) 在hive中,下面的命令只是从表中删除数据。它不会删除现有分区。我们需要手动放下它。
hive> truncate table t1;
我发现了另一个问题,如果我们在分区表中添加列并对其进行修改。那么在向表中插入覆盖数据时就会出现问题。找到的解决方法是删除表上的所有现有分区。
这是hive(版本0.13)中的问题吗?对配置单元和sql使用truncate还有什么区别?
1条答案
按热度按时间agxfikkp1#
在Hive里
truncate table
将从表或分区中删除所有行。分区无法删除。我们必须手动删除这些分区。
当前目标表应为本机/托管表,否则将引发异常。