zoukankan      html  css  js  c++  java
  • 【转】Hive 修改 table、column

    1、重命名表重命名表的语句如下:

    ALTER TABLE table_name RENAME TO new_table_name 

    2、修改表属性:

    ALTER TABLE table_name SET TBLPROPERTIES (property_name = property_value, property_name = property_value,... ) 

    3、修改表注释:

    ALTER TABLE table_name SET TBLPROPERTIES('comment' = new_comment);  

    1、添加列

    -- Add/Replace Columns 语法
    ALTER TABLE table_name ADD|REPLACE
      COLUMNS (col_name data_type [COMMENT col_comment], ...)
    
    --【注】ADD COLUMNS 允许用户在当前列的末尾增加新的列,但是在分区列之前。
    
    -- 将 a 列的名字改为 a1,a 列的数据类型改为 string,并将它放置在列 b 之后。
    ALTER TABLE test_change CHANGE a a1 STRING AFTER b;
    
    -- 将 b 列的名字修改为 b1, 并将它放在第一列。
    ALTER TABLE test_change CHANGE b b1 INT FIRST
    
    注意:对列的改变只会修改Hive的元数据,而不会改变实际数据。用户应该确定保证元数据定义和实际数据结构的一致性。

    2、修改列 

    --- Change Column Name/Type/Position/Comment 语法
    ALTER TABLE table_name CHANGE [COLUMN]
      col_old_name col_new_name column_type
        [COMMENT col_comment]
        [FIRST|AFTER column_name]
    
    --- Change Column Name/Type/Position/Comment 案例
    CREATE TABLE test_change (a int, b int, c int);
    ALTER TABLE test_change CHANGE a a1 INT; --将 a 列的名字改为 a1.
    
    --将 a 列的名字改为 a1,a 列的数据类型改为 string,并将它放置在列 b 之后。新的表结构为: b int, a1 string, c int.
    ALTER TABLE test_change CHANGE a a1 STRING AFTER b; 
    
    --将 b 列的名字修改为 b1, 并将它放在第一列。新表的结构为: b1 int, a string, c int.
    ALTER TABLE test_change CHANGE b b1 INT FIRST; 

    分区

    1、增加分区

    --Add Partitions 语法
    ALTER TABLE table_name ADD
      partition_spec [ LOCATION 'location1' ]
      partition_spec [ LOCATION 'location2' ] ...
    
    partition_spec:
      : PARTITION (partition_col = partition_col_value,
            partition_col = partiton_col_value, ...)
    
    --Add Partitions 语法案例:用户可以用 ALTER TABLE ADD PARTITION 来向一个表中增加分区。当分区名是字符串时加引号。
    
      ALTER TABLE page_view ADD
        PARTITION (dt='2008-08-08', country='us')
          location '/path/to/us/part080808'
        PARTITION (dt='2008-08-09', country='us')
          location '/path/to/us/part080809';

    2、删除分区

    ---DROP PARTITION 删除分区
    ALTER TABLE table_name DROP
        partition_spec, partition_spec,...

    Reference:

    https://www.jianshu.com/p/9088fe002e2a    Hive 修改table、column

  • 相关阅读:
    linux grep显示行数和上下行内容
    Network-Emulator Network-Emulator-Toolkit网络模拟器使用详细介绍(弱网测试工具)
    Fiddler抓包8-打断点(bpu)
    fiddler---Fiddler弱网测试
    详谈基数排序
    hadoop下的Pipes(用C++进行hadoop程序开发)
    hadoop环境安装及简单Map-Reduce示例
    每天一道面试题(2):实现strncpy
    每天一道面试题(1):快速排序
    结合源码看nginx-1.4.0之nginx多进程机制详解
  • 原文地址:https://www.cnblogs.com/piperck/p/11018428.html
Copyright © 2011-2022 走看看