您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Hive如何修改表”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Hive如何修改表”這篇文章吧。
注:大多數(shù)表屬性可以通過ALTER TABLE語句來進(jìn)行修改,這種操作會(huì)修改元數(shù)據(jù),但不會(huì)修改數(shù)據(jù)本身
*表重命名
eg: ALTER TABLE app RENAME TO user;
*增加、修改和刪除表分區(qū)
--ALTER TABLE tablename ADD PARTITION ... 語句用于為表(通常是外部表)增加一個(gè)新的分區(qū)
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' '
... ;
--移動(dòng)位置來修改某個(gè)分區(qū)的路徑
eg: ALTER TABLE app PARTITION (timetype=hour, clct_day='2018-07-26' )
SET LOCATION '/home/data/app/hour/'2018-07-26' ';
這個(gè)命令不會(huì)將數(shù)據(jù)從舊的路線轉(zhuǎn)移走,也不會(huì)刪除舊的數(shù)據(jù)。
--刪除分區(qū)
eg: ALTER TABLE app DROP IF EXISTS PARTITION (timetype=hour, clct_day='2018-07-26' );
注:對(duì)于管理表,即使是使用ALTER TABLE...ADD PARTITION 語句增加的分區(qū),分區(qū)內(nèi)的數(shù)據(jù)也是會(huì)同時(shí)和元數(shù)據(jù)信息一起被刪除的
對(duì)于外部表,分區(qū)內(nèi)數(shù)據(jù)不會(huì)被刪除
*修改列信息
--對(duì)某個(gè)字段進(jìn)行重命名,并修改其位置、類型或者注釋
eg: ALTER TABLE app
CHANGE COLUMN hour time_h INT
COMMENT 'THE hours part of the timestamp'
AFTER uv;
注:即使字段名或者字段類型沒有改變,也需要完全指定舊的字段名,并給出新的字段名及新的字段類型
此例子我們將字段轉(zhuǎn)移到uv字段之后,如果要轉(zhuǎn)移到第一個(gè)位置,只需要用FIRST關(guān)鍵字替代AFTER other_column子句即可
和通常一樣,這個(gè)命令只會(huì)修改元數(shù)據(jù)信息,如過移動(dòng)字段,那么數(shù)據(jù)也應(yīng)和新的模式匹配
*增加列
--我們可以在分區(qū)字段前增加新字段到已有字段之后
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);
解析:這個(gè)語句實(shí)際上重命名了之前的hour字段并且從原表移除了字段pv,uv,增加了message字段,因?yàn)槭茿LTER語句,所以只有表的元數(shù)據(jù)信息改變了
*修改表屬性
--可以增加附加的表屬性或者修改已經(jīng)存在的表屬性,但是無法刪除屬性
eg:ALTER TABLE app SET TBLPROPERTIES(
'notes'='this column is always NULL');
*修改存儲(chǔ)屬性
--有幾個(gè)ALTER TABLE 語句用于修改存儲(chǔ)格式和SerDe屬性
eg:ALTER TABLE app
PARTITION (timetype string,clct_day string )
SET FILEFORMAT SEQUENCEFILE;
解析:以上語句是將一個(gè)分區(qū)的存儲(chǔ)格式改成了SEQUENCEFILE,如果是分區(qū)表,需要使用PARTITION子句
以上是“Hive如何修改表”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。