在执行命令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只是维护了一个到外部表的引用关系,并不能清空外部的数据。所以,如果有清空表等表编辑表的操作,还是建内部表吧。