整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

12.6.5 表的修改

hadoop 小红牛 15℃ 0评论

 由于Hive使用“读时模式”(schema on read),所以在创建表以后,它非常 灵活地支持对表定义的修改。但一般需要警惕,在很多情况下,要由你来 确保修改数据以符合新的结构。

可以使用ALTER TABLE语句来重命名表:

ALTER TABLE source RENAME TO target;

在更新表的元数据以外,ALTER TABLE语句还把表目录移到新名称所对应 的目录下。在这个示例中,/user/hive/warehouse/source被重命名为/user/hive/warehouse/target。 对于外部表,这个操作只更新元数据,而不会移动目录。

Hive允许修改列的定义,添加新的列,甚至用一组新的列替换表内已有 的列。

例如,考虑添加一个新列:

ALTER TABLE target ADD COLUMNS (col3 STRING);

新的列co13添加在已有(非分区)列的后面。数据文件并没有被更新,因此
原来的査询会为col3的所有值返回空值null(当然,除非文件中原来就已
经有额外的字段)。因为Hive并不允许更新已有的记录,所以需要使用其他 机制来更新底层的文件。为冗,更常用的做法是创建一个定义了新列的新
表,然后使用SELECT语句把数据填充进去。

如果我们设想原来的数据类型可以用新的数据类型来进行解释,那么修改 一个表的元数据(如列名或数据类型)就变得更为直观。

要想更进一步了解如何修改表的结构,包括添加或丢弃分区、修改和替换 列,修改表和SerDe的属性,可访问Hive的英文维基页面,网址为 http://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL。

转载请注明:全栈大数据 » 12.6.5 表的修改

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址