温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Hive如何修改表

发布时间:2021-12-10 09:37:01 来源:亿速云 阅读:277 作者:小新 栏目:大数据

这篇文章主要为大家展示了“Hive如何修改表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Hive如何修改表”这篇文章吧。



       注:大多数表属性可以通过ALTER TABLE语句来进行修改,这种操作会修改元数据,但不会修改数据本身

*表重命名
             eg: ALTER TABLE  app RENAME TO user;

*增加、修改和删除表分区
     --ALTER TABLE tablename ADD PARTITION ... 语句用于为表(通常是外部表)增加一个新的分区
             eg: ALTER TABLE  app ADD IF NOT EXISTS
                   PARTITION (timetype=hour, clct_day='2018-07-26' ) LOCATION '/data/test/app/hour/'2018-07-26' '
                   PARTITION (timetype=hour, clct_day='2018-07-27' ) LOCATION '/data/test/app/hour/'2018-07-27' '
                   PARTITION (timetype=hour, clct_day='2018-07-28' ) LOCATION '/data/test/app/hour/'2018-07-28' '
                   ... ;

     --移动位置来修改某个分区的路径
              eg: ALTER TABLE  app  PARTITION (timetype=hour, clct_day='2018-07-26' )
                    SET LOCATION '/home/data/app/hour/'2018-07-26' ';
        这个命令不会将数据从旧的路线转移走,也不会删除旧的数据。

     --删除分区
              eg: ALTER TABLE  app DROP IF EXISTS PARTITION (timetype=hour, clct_day='2018-07-26' );
              注:对于管理表,即使是使用ALTER TABLE...ADD PARTITION 语句增加的分区,分区内的数据也是会同时和元数据信息一起被删除的
                     对于外部表,分区内数据不会被删除

*修改列信息
      --对某个字段进行重命名,并修改其位置、类型或者注释
               eg: ALTER TABLE  app
                     CHANGE COLUMN hour time_h INT
                     COMMENT 'THE hours part of the timestamp'
                     AFTER uv;
               注:即使字段名或者字段类型没有改变,也需要完全指定旧的字段名,并给出新的字段名及新的字段类型
                      此例子我们将字段转移到uv字段之后,如果要转移到第一个位置,只需要用FIRST关键字替代AFTER other_column子句即可
                      和通常一样,这个命令只会修改元数据信息,如过移动字段,那么数据也应和新的模式匹配

*增加列
      --我们可以在分区字段前增加新字段到已有字段之后
               eg:ALTER TABLE  app ADD COLUMNS(
                    appversion  STRING COMMENT 'Application version',
                    nettype STRING COMMENT 'logining application with nettype');

*删除或者替换列
      --移除之前所有字段并重新指定了新字段
               eg:ALTER TABLE  app REPLACE COLUMNS(
                    time int,
                    name string,
                    message string);
              解析:这个语句实际上重命名了之前的hour字段并且从原表移除了字段pv,uv,增加了message字段,因为是ALTER语句,所以只有表的元数据信息改变了

*修改表属性
      --可以增加附加的表属性或者修改已经存在的表属性,但是无法删除属性
                eg:ALTER TABLE  app SET TBLPROPERTIES(
                     'notes'='this column is always NULL');

*修改存储属性
      --有几个ALTER TABLE 语句用于修改存储格式和SerDe属性
                eg:ALTER TABLE  app
                     PARTITION (timetype string,clct_day string )
                     SET FILEFORMAT SEQUENCEFILE;
                解析:以上语句是将一个分区的存储格式改成了SEQUENCEFILE,如果是分区表,需要使用PARTITION子句

以上是“Hive如何修改表”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI