1. 程式人生 > >hive基礎入門------建(外)內表匯入資料

hive基礎入門------建(外)內表匯入資料

 連線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去檢視裡面的內容,除此之外還有臨時表