可以通過多種方式將資料匯入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來匯出資料,會報錯...