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

  • 相关阅读:
    百度之星资格赛1001——找规律——大搬家
    HDU1025——LIS——Constructing Roads In JGShining's Kingdom
    DP(递归打印路径) UVA 662 Fast Food
    递推DP UVA 607 Scheduling Lectures
    递推DP UVA 590 Always on the run
    递推DP UVA 473 Raucous Rockers
    博弈 HDOJ 4371 Alice and Bob
    DFS(深度) hihoCoder挑战赛14 B 赛车
    Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2)
    DP(DAG) UVA 437 The Tower of Babylon
  • 原文地址:https://www.cnblogs.com/piperck/p/11018428.html
Copyright © 2011-2022 走看看