在 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 )) 的列的主要内容,如果未能解决你的问题,请参考以下文章

sql [AS]显示具有不同名称的表列(未在原始表中重命名)#SQL

如何在SELECT语句中重命名和引用COUNT(*)?

Oracle查询语句中重命名的列在WHERE中无效?

使用 fs 在 multer 中重命名上传的图像

在 bitbucket 中重命名合并的分支名称

在 node.js 中重命名 json 对象名称