您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“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如何修改表”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。