【问题标题】:Renaming Column with name count( distinct( id )) in Hive Table在 Hive 表中重命名名称为 count( distinct( id )) 的列
【发布时间】: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)),或重命名该列?

【问题讨论】:

    标签: hive apache-spark-sql hiveql


    【解决方案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参数
      猜你喜欢
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2022-10-15
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      相关资源
      最近更新 更多