二、hive shell常用命令
阿新 • • 發佈:2018-11-17
在使用hive shell之前我們需要先安裝hive
請參考:https://www.cnblogs.com/lay2017/p/9973298.html
hive shell
我們先進入安裝目錄
cd /usr/local/hadoop/hive/apache-hive-1.2.2-bin
使用Hive命令啟動hive shell
hive
檢視一下資料庫,發現有一個預設的default
我們需要建立一個新的test資料庫
再看一下資料庫,test資料庫已經建立完成了
我們切換到test資料庫
建立一張t_user表,你會看到建立表的語句顯得似乎很麻煩,這麼長一句
CREATE TABLE users(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORED AS TEXTFILE;
我們分開來看,建表的簡單語句,如
create t_user(id int, name String);
而每一列分隔符就是
ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
每行的分隔符就是
LINES TERMINATED BY '\n'
最後儲存的檔案格式就是txt
STORED AS TEXTFILE;
為了更清楚建表語句為什麼這麼建,我們在/tmp目錄下建立一個user.txt,內容如下(注意:每個單詞之間是空格分隔,每行是\n分隔,這也是為什麼我們在建立hive的表的時候需要配置它的格式,因為我們在讀取txt資料的時候需要按照格式進行讀取,否則你將查詢到一堆的null)
1 lay 2 marry 3 gary
然後我們在hive shell中,把該txt資料給載入到hive中
load data local inpath '/tmp/user.txt' overwrite into table t_user; // 載入本地資料到t_user表中
然後我們查詢一下t_user表中的資料,如下
資料就像關係型資料庫一樣展示,這就是hive的SQL簡單查詢功能
常用命令
create database test; // 建立資料庫 drop database test; // 刪除資料庫 drop database test cascade; // 強制刪除資料庫 show databases; // 列出所有資料庫 use test; // 使用資料庫 create t_user(id int, name String); // 建立表 CREATE TABLE users(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORED AS TEXTFILE; // 按照格式建立表,否則load data無法正常讀取資料 describe t_user; // 查詢表結構 drop table t_user; // 刪除表 alter table t_user add columns(age int); // 更改表,新增列 load data local inpath '/tmp/user.txt' overwrite into table t_user; // 載入本地資料到t_user表中 load data inpath '/tmp/user.txt' overwrite into table t_user; // 從hdfs載入資料到t_user表中