Hive的基本操作
阿新 • • 發佈:2020-09-14
1、強制刪除資料庫:
通常情況下資料庫中有表是不能刪除的,強制刪除資料庫使用“cascade”。如強制刪除資料庫“test”
drop database test cascade;
2、建立表指定分隔符,不指定分隔符預設是TextFile格式,輸出時欄位內容會挨著。
cmissh@hn0-stg02:~$ hdfs dfs -cat wasb://[email protected]/hive/warehouse/rx801.db/test/000000_0 zhangsan10 建立表時指定分隔符,如使用 , 作為分隔符,使用 row format delimited fields terminated by ',';例:建立test表: create table test (name string,age int,address string) row format delimited fields terminated by ','; insert into test values ('zhangsan',25,'beijing') 通過show create table test; 可以看到檔案存放的位置,wasb://[email protected]/hive/warehouse/rx801.db/test
插入操作都以檔案的形式記錄在Blob中。
檢視檔案hdfs dfs -ls wasb://[email protected]/hive/warehouse/rx801.db/test
將會顯示:wasb://[email protected]/hive/warehouse/rx801.db/test/000000_0
通過檢視可以看到是以分隔符 , 進行分割的。 cmissh@hn0-stg02:~$ hdfs dfs -cat wasb://[email protected]/hive/warehouse/rx801.db/test/000000_0 zhangsan,25,beijing
3、表中新增欄位。
表中新增欄位使用:alter table 表名 add columns(新欄位 欄位型別);
例:test表中新增一個string型別的tel欄位。 hive> alter table test add columns(tel string); OK Time taken: 0.312 seconds hive> desc test; OK name string age int address string tel string Time taken: 0.185 seconds, Fetched: 4 row(s)
4、表中修改欄位和欄位位置移動
修改欄位名使用:Alter table 表名 change column 原欄位名稱 現欄位名稱 資料型別;
例:將test表中的tel修改為int型別 hive> alter table test change column tel tel int; OK Time taken: 0.467 seconds hive> desc test; OK name string age int address string tel int Time taken: 0.23 seconds, Fetched: 4 row(s)
更改欄位的位置使用:Alter table 表名 change column 原欄位名稱 現欄位名稱 資料型別 after 欄位名;
例:將test表中的tel欄位移動到name欄位後面。
hive> alter table test change column tel tel int after name; OK Time taken: 0.467 seconds hive> desc test; OK name string
tel int age int address string Time taken: 0.255 seconds, Fetched: 4 row(s)
5、表中刪除欄位
Hive中不支援使用 alter table 表名 drop columns 這種語法,支援replace 語法為:alter table 表名 replace columns(列名1 型別,列名2 型別,列名3 型別....); replace的使用是保留括號中的列 例:刪除test表中的tel列。 hive> alter table test replace columns(name string,age int,address string); OK Time taken: 0.303 seconds hive> desc test; OK name string age int address string Time taken: 0.179 seconds, Fetched: 3 row(s)