在执行命令truncate 清空hive表时,
报错如下:FAILED: SemanticException [Error 10146]: Cannot truncate non-managed table mtime_qa.userorder_logs
我清空的是一个外部表。
如图:

看hortontworks官方解释:
note:This error happens when you're trying to truncate an external table. Truncate needs to target a native/managed table or an exception will be thrown.
Here's a really great reference:
https://community.hortonworks.com/questions/38807/hive-overwrtite-table.html
以上大意是,要清空的表为外部表,外部表当然不被hive管理,hive只是维护了一个到外部表的引用关系,并不能清空外部的数据。所以,如果有清空表等表编辑表的操作,还是建内部表吧。
本文解析了在Hive中尝试使用truncate命令清空外部表时遇到的错误信息及原因。外部表由Hive仅维护元数据而不管理实际数据文件,因此无法直接通过truncate命令进行清空操作。

2万+

被折叠的 条评论
为什么被折叠?



