hive學習總結(1)—Hive幾種數據導入方式

1.從本地文件系統中導入數據到hive表web

 

(1)數據準備(/home/sopdm/test.dat):數據庫

 

  1,wyp,25,13188888888oop

  2,test,30,13899999999spa

  3,zs,34,89931412orm

 

(2)首先建立表hadoop

use sopdm;input

drop table if exists sopdm.wyp;文件上傳

create table if not exists sopdm.wyp(id int,name string,age int,tel string)string

row format delimitedit

fields terminated by ','

stored as textfile;

 

(3)從本地文件系統中導入數據到Hive表

 

load data local inpath ‘/home/sopdm/test.dat’ into table sopdm.wyp;

 

(4)能夠到wyp表的數據目錄下查看,以下命令

 

dfs  -ls  /user/sopdm/hive/warehouse/sopdm.db/wyp;

 

2.從HDFS上導入數據到Hive表

 

(1)如今hdfs中建立一個input目錄存放HDFS文件

hadoop fs -mkdir input;  或   hadoop fs -mkdir /user/sopdm/input;

 

(2)把本地文件上傳到HDFS中,並重命名爲test_hdfs.dat

hadoop fs -put /home/sopdm/test.dat /user/sopdm/input/test_hdfs.dat;

 

(3)查看文件

dfs -cat /user/sopdm/input/test_hdfs.dat;

 

(4)將內容導入hive表中

 

--拷貝「本地數據」到「hive」使用:load data local…

--轉移「HDFS」到「hive」(必須同一個集羣)使用:load data…

load data inpath ‘/user/sopdm/input/test_hdfs.dat’ into table sopdm.wyp;

 

3.從別的Hive表中導入數據到Hive表中

 

create table if not exists sopdm.wyp2(id int,name string,tel string)

row format delimited

fields terminated by ','

stored as textfile;

 

--overwrite是覆蓋,into是追加

insert into table sopdm.wyp2

select id,name,tel from sopdm.wyp;

 

--多表插入

--高效方式-查詢語句插入多個分區

from sopdm.wyp w

insert overwrite table sopdm.wyp2

    select w.id,w.name,w.tel where w.age=25

insert overwrite table sopdm.wyp2

    select w.id,w.name,w.tel where w.age=27;

 

4.建立Hive表的同時導入查詢數據

 

create table sopdm.wyp3

       as select id,name,tel,age from sopdm.wyp where age=25;

 

5.使用sqoop從關係數據庫導入數據到Hive表

    這個放在sqoop總結中去講解。

相關文章
相關標籤/搜索