hive基礎入門------建(外)內表匯入資料
阿新 • • 發佈:2019-01-06
連線hive beeline
beeline -u "jdbc:hive2://localhost:10000/default"
檢視資料庫下的表
show tables;
查詢資料庫
show databases;
新建一個數據庫
create database myhive2
再次查詢
show databases;
使用此資料庫
use myhive2;
執行如下命令
CREATE TABLE IF NOT EXISTS employee_external ( name string, work_place ARRAY<string>, sex_age STRUCT<sex:string,age:int>, skills_score MAP<string,int>, depart_title MAP<STRING,ARRAY<STRING>> ) COMMENT 'This is an external table' ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' COLLECTION ITEMS TERMINATED BY ',' MAP KEYS TERMINATED BY ':' STORED AS TEXTFILE
之後我們檢視一下表
select * from employee_internal;
下面我們匯入資料檢視具體變化
檔案地址
然後put到
此路徑下重新整理之後見上圖
select * from employee_internal;
之後效果圖如下
結束,
外部表建立方式:
CREATE EXTERNAL TABLE IF NOT EXISTS employee_external ( name string, work_place ARRAY<string>, sex_age STRUCT<sex:string,age:int>, skills_score MAP<string,int>, depart_title MAP<STRING,ARRAY<STRING>> ) COMMENT 'This is an external table' ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' COLLECTION ITEMS TERMINATED BY ',' MAP KEYS TERMINATED BY ':' STORED AS TEXTFILE LOCATION '/user/dayongd/employee';
注意第一行的external外部表標識,還有最下面的location指明你要放置的路徑
所以put的時候放到外部表路徑下即可
內部表和外部表的區別除了上述還有在刪除的時候,內部表的資料會都刪除,外部表你的location下的不會被刪除,當然你可以用hdfs dfs -cat去檢視裡面的內容,除此之外還有臨時表