首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改单元中非本机表中的表/添加列

更改单元中非本机表中的表/添加列
EN

Stack Overflow用户
提问于 2018-03-21 07:09:29
回答 1查看 1.9K关注 0票数 1

我创建了一个带有存储处理程序的hive表,现在我想在该表中添加一个列,但是它给出了下面的错误:

代码语言:javascript
复制
[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

对于前任,我在我的案例中使用了。

我创建了一个蜂巢表,它使用:

代码语言:javascript
复制
CREATE TABLE druid_table_1
(`__time` TIMESTAMP, `dimension1` STRING, `metric1` int)
STORED BY 'org.apache.hadoop.hive.druid.DruidStorageHandler';

然后我试着增加一个专栏:

代码语言:javascript
复制
ALTER TABLE druid_table_1 ADD COLUMNS (`dimension2` STRING);

通过上述方法,我得到了一个错误。

是否有其他方法可以在不重新创建列的情况下将列添加到单元中的非本机表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-27 18:13:35

修补程序可从Hortonworks的HDP 2.5+中获得。ALTER语句中添加了对添加列的支持。

列可以使用胞中的ALTER添加到德鲁伊表中。ALTER TABLE ADD COLUMNS (col_name data_type)

不需要指定分区规范,因为这些是德鲁伊支持的蜂窝表,分区/存储由德鲁伊维护。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49400232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档