Hive學習之更改表的屬性
1、修改表名
alter table table_name rename to new_table_name;
例1:alter table ruoze_emp rename to emp;
2、修改列名
alter table tablename change column column_orign column_new int(修改後列的屬性) comment 'column_name'
after severity;//可以把該列放到指定列的後面,或者使用‘first’放到第一位
將表tablename中的列column_orign修改成column_new,同時指定修改後的列名稱的屬性,comment是這個列的註釋
例1:alter table emp change column age uage double comment 'column age' after id;
3、增加列
alter table tablename add columns(column1 string comment 'xxxx',column2 long comment 'yyyy')
例1:alter table emp add columns(age int);
4、替換表
ALTER TABLE table_name [PARTITION partition_spec] ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...) [CASCADE|RESTRICT] -- (Note: Hive 1.1.0 and later)
例1:ALTER TABLE emp REPLACE COLUMNS (age int, uage int);
5、檢視錶的屬性
desc formatted tablename;
6、修改表的屬性
(1)alter table table_name set tblproperties('property_name'='new_value');
將table_name表中的comment屬性值修改成'new_value';
(2)alter table emp set serdeproperties ("field.delim"="\t");
將表table_name中的欄位分割符修改成'\t',注意,這是在表沒有分割槽的情況下
例1:create table emp(id int,uname string)row format delimited fields terminated by '#' lines terminated by '\n' stored as textfile;
alter table emp set serdeproperties('field.delim'='\t');這條語句將t8表中的欄位分隔符'#'修改成'\t';
例2:create table emp(id int,uname string) partitioned by(dt=string) row foramt delimited fields terminated by '\n' stored as textfile;
alter table emp partition(dt='20180108') set serdeproperties('field.delim=\t');
(3)alter table table_name[partition] set location 'path'
alter table emp set TBLPROPERTIES('EXTERNAL'='TRUE');//內部錶轉化成外部表
alter table emp set TBLPROPERTIES('EXTERNAL'='FALSE');//外部錶轉成內部表
注意:由於emp預設是內表,所以在刪除表emp時,它的資料包括檔案目錄全部被刪除,為了防止這種情況發生,可以將表emp修改成外表,
透過語句:alter table emp set tblproperties('EXTERNAL'='TRUE');同樣也可以將外部表修改為內部表,
可以透過語句:alter table city set tblproperties('EXTERNAL'='FALSE');
(4)其他修改表屬性的命令:
alter table properties; alter serde properties;
alter table/partition file format;
alter table storage properties;
alter table rename partition;
alter table set location;
詳細說明可以參考:Hive官網,在官網中找:wiki LanguageManual DDL()來查詢詳細介紹
若澤大資料交流群:671914634
alter table table_name rename to new_table_name;
例1:alter table ruoze_emp rename to emp;
2、修改列名
alter table tablename change column column_orign column_new int(修改後列的屬性) comment 'column_name'
after severity;//可以把該列放到指定列的後面,或者使用‘first’放到第一位
將表tablename中的列column_orign修改成column_new,同時指定修改後的列名稱的屬性,comment是這個列的註釋
例1:alter table emp change column age uage double comment 'column age' after id;
3、增加列
alter table tablename add columns(column1 string comment 'xxxx',column2 long comment 'yyyy')
例1:alter table emp add columns(age int);
4、替換表
ALTER TABLE table_name [PARTITION partition_spec] ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...) [CASCADE|RESTRICT] -- (Note: Hive 1.1.0 and later)
例1:ALTER TABLE emp REPLACE COLUMNS (age int, uage int);
5、檢視錶的屬性
desc formatted tablename;
6、修改表的屬性
(1)alter table table_name set tblproperties('property_name'='new_value');
將table_name表中的comment屬性值修改成'new_value';
(2)alter table emp set serdeproperties ("field.delim"="\t");
將表table_name中的欄位分割符修改成'\t',注意,這是在表沒有分割槽的情況下
例1:create table emp(id int,uname string)row format delimited fields terminated by '#' lines terminated by '\n' stored as textfile;
alter table emp set serdeproperties('field.delim'='\t');這條語句將t8表中的欄位分隔符'#'修改成'\t';
例2:create table emp(id int,uname string) partitioned by(dt=string) row foramt delimited fields terminated by '\n' stored as textfile;
alter table emp partition(dt='20180108') set serdeproperties('field.delim=\t');
(3)alter table table_name[partition] set location 'path'
alter table emp set TBLPROPERTIES('EXTERNAL'='TRUE');//內部錶轉化成外部表
alter table emp set TBLPROPERTIES('EXTERNAL'='FALSE');//外部錶轉成內部表
注意:由於emp預設是內表,所以在刪除表emp時,它的資料包括檔案目錄全部被刪除,為了防止這種情況發生,可以將表emp修改成外表,
透過語句:alter table emp set tblproperties('EXTERNAL'='TRUE');同樣也可以將外部表修改為內部表,
可以透過語句:alter table city set tblproperties('EXTERNAL'='FALSE');
(4)其他修改表屬性的命令:
alter table properties; alter serde properties;
alter table/partition file format;
alter table storage properties;
alter table rename partition;
alter table set location;
詳細說明可以參考:Hive官網,在官網中找:wiki LanguageManual DDL()來查詢詳細介紹
若澤大資料交流群:671914634
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31511218/viewspace-2149885/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hive學習之常見屬性配置Hive
- Hive學習之Hive的安裝Hive
- Java學習之類的屬性(轉)Java
- hive學習筆記之四:分割槽表Hive筆記
- Android學習之 屬性動畫Android動畫
- HIVE學習之(三)Hive
- 更改input的type屬性
- Hive學習之基本操作Hive
- Hive學習之六 《Hive進階— —hive jdbc》 詳解HiveJDBC
- HTML5 學習筆記 表單屬性HTML筆記
- Salesforce LWC學習(三十四) 如何更改標準元件的相關屬性資訊Salesforce元件
- Hive學習之JDBC訪問HiveJDBC
- Android學習之 那些讓我生疏的配置屬性Android
- html學習(常用屬性)HTML
- 【ASM】ASMCMD chtmpl 更改ASM 模版的屬性ASM
- hive學習筆記之十一:UDTFHive筆記
- Hive學習之常用互動命令Hive
- Hive學習之型別轉化Hive型別
- MySQL學習之全域性鎖和表鎖MySql
- Hive學習之三 《Hive的表的詳解和應用案例詳解》Hive
- Hive學習筆記 3 Hive的資料模型:內部表、分割槽表、外部表、桶表、檢視Hive筆記模型
- CALayer學習--contentsCenter屬性
- 學習Rust:派生derive屬性Rust
- Redis學習 - 配置屬性:bindRedis
- iOS 屬性學習筆記iOS筆記
- 表的itl 屬性
- Hive學習Hive
- Hive 學習Hive
- win10怎麼更改網路屬性_要如何更改網路屬性windows10Win10Windows
- win10怎樣更改連線屬性_win10怎麼更改網路屬性Win10
- CMake 屬性之全域性屬性
- javascript學習之路之元素獲取和設定屬性JavaScript
- Java基礎學習之陣列基本屬性和方法Java陣列
- html5之新增表單屬性HTML
- hive學習筆記之五:分桶Hive筆記
- hive學習筆記之八:SqoopHive筆記OOP
- Hive學習之二 《Hive的安裝之自定義mysql資料庫》HiveMySql資料庫
- 好程式設計師大資料學習路線之hive表的查詢程式設計師大資料Hive