這篇文章主要為大家展示了“Hive如何修改表”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Hive如何修改表”這篇文章吧。
創(chuàng)新互聯(lián)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!為您提供網(wǎng)站建設(shè)、成都做網(wǎng)站、成都網(wǎng)頁設(shè)計、小程序制作、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、重慶App定制開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計公司,等你一起來見證!
注:大多數(shù)表屬性可以通過ALTER TABLE語句來進(jìn)行修改,這種操作會修改元數(shù)據(jù),但不會修改數(shù)據(jù)本身
*表重命名
eg: ALTER TABLE app RENAME TO user;
*增加、修改和刪除表分區(qū)
--ALTER TABLE tablename ADD PARTITION ... 語句用于為表(通常是外部表)增加一個新的分區(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' '
... ;
--移動位置來修改某個分區(qū)的路徑
eg: ALTER TABLE app PARTITION (timetype=hour, clct_day='2018-07-26' )
SET LOCATION '/home/data/app/hour/'2018-07-26' ';
這個命令不會將數(shù)據(jù)從舊的路線轉(zhuǎn)移走,也不會刪除舊的數(shù)據(jù)。
--刪除分區(qū)
eg: ALTER TABLE app DROP IF EXISTS PARTITION (timetype=hour, clct_day='2018-07-26' );
注:對于管理表,即使是使用ALTER TABLE...ADD PARTITION 語句增加的分區(qū),分區(qū)內(nèi)的數(shù)據(jù)也是會同時和元數(shù)據(jù)信息一起被刪除的
對于外部表,分區(qū)內(nèi)數(shù)據(jù)不會被刪除
*修改列信息
--對某個字段進(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)移到第一個位置,只需要用FIRST關(guān)鍵字替代AFTER other_column子句即可
和通常一樣,這個命令只會修改元數(shù)據(jù)信息,如過移動字段,那么數(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);
解析:這個語句實際上重命名了之前的hour字段并且從原表移除了字段pv,uv,增加了message字段,因為是ALTER語句,所以只有表的元數(shù)據(jù)信息改變了
*修改表屬性
--可以增加附加的表屬性或者修改已經(jīng)存在的表屬性,但是無法刪除屬性
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;
解析:以上語句是將一個分區(qū)的存儲格式改成了SEQUENCEFILE,如果是分區(qū)表,需要使用PARTITION子句
以上是“Hive如何修改表”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!