如何更改Hive表中列名的长度?

时间:2016-01-20 22:26:28

标签: hive apache-hive

我有一个hive表,其列名比平时长。我提到了表定义的hive Metastore。这是它的外观:

DESCRIBE hive.columns_v2;

输出:

Name        ||  Null      ||   Type           
-----------    -------- -------------- 
CD_ID       ||  NOT NULL  || NUMBER         
COMMENT     ||            || VARCHAR2(256)  
COLUMN_NAME || NOT NULL   || VARCHAR2(128)  
TYPE_NAME   || NOT NULL   || VARCHAR2(4000) 
INTEGER_IDX || NOT NULL   || NUMBER(10)   

我可以看到column_name被定义为128字节的varchar2。是否有蜂巢样环设置我可以改变这个值?

更新 请参阅此票证,其中已明确说明问题。 https://issues.apache.org/jira/browse/HIVE-9815

想法是将MAX_STRING_SIZE更改为数据库本身设置为EXTENDED。但这会搞砸数据库上的很多其他东西。

对此有任何解决方法吗?

1 个答案:

答案 0 :(得分:0)

这可能有效:

ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST | AFTER column_name]

示例:

CREATE TABLE table_name(int,b int,c int);

//将列a的名称更改为a1 ALTER TABLE table_name CHANGE a a1 INT;