在 Hive 表中重命名名称为 count( distinct( id )) 的列

Posted

技术标签:

【中文标题】在 Hive 表中重命名名称为 count( distinct( id )) 的列【英文标题】:Renaming Column with name count( distinct( id )) in Hive Table 【发布时间】:2018-04-27 13:23:40 【问题描述】:

在从 SELECT 语句在 HIVE 中创建表时,我忘记为派生列提供别名。

CREATE TABLE temp AS (SELECT date, count(distinct(id)) FROM some_table GROUP BY date);

现在我想在派生列上使用过滤器查询新创建的临时表,我不想删除该表并使用派生列的别名再次运行相同的查询。

如何过滤列计数(distinct(id)),或重命名该列?

【问题讨论】:

【参考方案1】:

您可以使用DESCRIBE查看列名:

DESCRIBE temp;    
col1                    string                                      
_c1                     bigint                  

然后只需重命名该列:

ALTER TABLE temp CHANGE `_c1` `cnt` bigint;

或者使用_c1列名:

SELECT `_c1` FROM temp2;

【讨论】:

【参考方案2】:

简单使用:

ALTER TABLE yourtable CHANGE `columnname` `newname` BIGINT;

【讨论】:

你忘记了column_type参数

以上是关于在 Hive 表中重命名名称为 count( distinct( id )) 的列的主要内容,如果未能解决你的问题,请参考以下文章