資料匯入hive的幾種方式

2021-08-21 04:52:17 字數 4917 閱讀 9025

可以通過多種方式將資料匯入hive表

1.通過外部表匯入

使用者在hive上建external表,建表的同時指定hdfs路徑,在資料拷貝到指定hdfs路徑的同時,也同時完成資料插入external表。

例如:編輯檔案test.txt

$ cat test.txt

1       hello

2       world

3       test

4       case

字段之間以'\t'分割

啟動hive:

$ hive

建external表:

hive> create external table mytest(num int, name string)

> comment 'this is a test'

> row format delimited fields terminated by '\t'

> stored as textfile

> location '/data/test';

oktime taken: 0.714 seconds

hive> show tables;

okmytest

partition_test

partition_test_input

test

time taken: 0.07 seconds

hive> desc mytest ;

oknum     int

name    string

time taken: 0.121 seconds|

資料拷貝到hdfs:

$ hadoop fs -put test.txt /data/test

檢視hive表資料:

hive> select * from mytest;

ok1       hello

2       world

3       test

4       case

time taken: 0.375 seconds

hive> select num from mytest;

total mapreduce jobs = 1

launching job 1 out of 1

......

total mapreduce cpu time spent: 510 msecok1

234time taken: 27.157 seconds

這種方式常常用於當hdfs上有一些歷史資料,而我們需要在這些資料上做一些hive的操作時使用。這種方式避免了資料拷貝開銷

2.從本地匯入

資料不在hdfs上,直接從本地匯入hive表

檔案/home/work/test.txt內容同上

建表:hive> create table mytest2(num int, name string)

> comment 'this is a test2'                          

> row format delimited fields terminated by '\t'     

> stored as textfile;                                

oktime taken: 0.077 seconds

導資料入錶:

hive> load data local inpath '/home/work/test.txt' into table mytest2;

copying data from file:/home/work/test.txt

copying file: file:/home/work/test.txt

loading data to table default.mytest2

oktime taken: 0.24 seconds

檢視資料:

hive> select * from mytest2;

ok1       hello

2       world

3       test

4       case

time taken: 0.11 seconds

這種方式匯入的本地資料可以是乙個檔案,乙個資料夾或者萬用字元,需要注意的是,如果是資料夾,資料夾內不能包含子目錄,同樣,萬用字元只能通配檔案。

3.從hdfs匯入

上述test.txt檔案已經匯入/data/test

則可以使用下述命令直接將資料匯入hive表:

hive> create table mytest3(num int, name string)

> comment "this is a test3"

> row format delimited fields terminated by '\t'

> stored as textfile;

oktime taken: 4.735 seconds

hive> load data inpath '/data/test/test.txt' into table mytest3;

loading data to table default.mytest3

oktime taken: 0.337 seconds

hive> select * from mytest3 ;

ok1       hello

2       world

3       test

4       case

time taken: 0.227 seconds

4. 從其它表匯入資料:

Hive 資料匯入的幾種方式

幾種基本的匯入資料方式 1 建表的時候指定location 結構化資料的位置資料夾 外部表 例 新建user1.txt 檔案 將該檔案上傳到hdfs 的 data test 目錄下 建表create external table tb user2 id int,name string row for...

hive表匯入資料的幾種方式

以前學習hive的時候這些知識點應該是涉及到的,但是時間久了沒有用就會忘記,今天借這個機會來複習一下相關知識。下面總結一下hive表匯入資料的四種方式 1 從本地檔案系統中匯入資料到hive表 2 從hdfs上匯入資料到hive表 3 從別的表中查詢出相應的資料並匯入到hive表中 4 在建立表的時...

Hive幾種資料匯入匯出方式

匯入 hive幾種資料匯入方式 匯出 1.拷貝檔案 如果資料檔案恰好是使用者需要的格式,那麼只需要拷貝檔案或資料夾就可以。hadoop fs cp source path target path 2.匯出到本地檔案系統 不能使用insert into local directory來匯出資料,會報錯...