我创建了一个带有存储处理程序的hive表,现在我想在该表中添加一个列,但是它给出了下面的错误:
[Code: 10134, SQL State: 42000] Error while compiling statement: FAILED:
SemanticException [Error 10134]: ALTER TABLE can only be used for [ADDPROPS,
DROPPROPS] to a non-native table根据单元文档,使用存储处理程序创建的任何单元表都是非本机表。
这里有一个链接https://cwiki.apache.org/confluence/display/Hive/StorageHandlers
这里有一个JIRA案例,对于相同的Apache来说,增强是开放的。https://issues.apache.org/jira/browse/HIVE-1240
对于前任,我在我的案例中使用了。
我创建了一个蜂巢表,它使用:
CREATE TABLE druid_table_1
(`__time` TIMESTAMP, `dimension1` STRING, `metric1` int)
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler';然后我试着增加一个专栏:
ALTER TABLE druid_table_1 ADD COLUMNS (`dimension2` STRING);通过上述方法,我得到了一个错误。
是否有其他方法可以在不重新创建列的情况下将列添加到单元中的非本机表?
发布于 2018-12-27 18:13:35
修补程序可从Hortonworks的HDP 2.5+中获得。ALTER语句中添加了对添加列的支持。
列可以使用胞中的ALTER添加到德鲁伊表中。ALTER TABLE ADD COLUMNS (col_name data_type)
不需要指定分区规范,因为这些是德鲁伊支持的蜂窝表,分区/存储由德鲁伊维护。
https://stackoverflow.com/questions/49400232
复制相似问题