Hive 表資料的匯出 匯入(HDFS 本地)

2021-10-08 19:10:16 字數 3504 閱讀 8900

資料匯出

1)語法

load

data

[local

] inpath '資料的path'

[overwrite]

into

table student [

partition

(partcol1=val1,…)

];

(1)load data:表示載入資料

(2)local:表示從本地載入資料到hive表;否則從hdfs載入資料到hive表

(加local是從本地複製過去,不加local是從hdfs上剪下過去)

(3)inpath:表示載入資料的路徑

(4)overwrite:表示覆蓋表中已有資料,否則表示追加

​ (overwrite會把之前的資料檔案刪除,在把新的資料檔案傳上去)

(5)into table:表示載入到哪張表

(6)student:表示具體的表

(7)partition:表示上傳到指定分割槽

2)實操案例

(1)載入本地檔案到hive

load

data

local

inpath '/opt/module/hive/datas/student.txt'

into

table student;

(2)載入hdfs檔案到hive中

# 上傳檔案到hdfs

hadoop fs -put /opt/module/hive/datas/student.txt /

user

/qinjl;

# 載入hdfs上資料,匯入完成後去hdfs檢視檔案是否還存在

load

data inpath '/user/qinjl/student.txt'

into

table student;

(3)載入資料覆蓋表中已有的資料

# 上傳檔案到hdfs

hdfs -put /opt/module/hive/datas/student.txt /

user

/qinjl;

# 載入資料覆蓋表中已有的資料

load

data inpath '/user/qinjl/student.txt' overwrite into

table student;

1)建立一張表

create

table student2(id int

, name string)

row format delimited fields

terminated

by'\t'

;

2)基本模式插入資料

insert

into

table student2 values(1

,'wangwu'),

(2,'zhaoliu'

);

3)根據查詢結果插入資料( 插入select的表,的字段、型別要匹配,否則報錯)

insert overwrite table student2 

select id, name from student where id <

1006

;

根據查詢結果建立表(查詢的結果會新增到新建立的表中)

create

table

ifnot

exists student3

asselect id, name from student;

# 建立表,並指定在hdfs上的位置

create external table

ifnot

exists student5(

id int

, name string

)row format delimited fields

terminated

by'\t'

location '/student'

;

import

table student2 from

'/user/hive/warehouse/export/student'

;

# 1)將查詢的結果匯出到本地(只能overwrite,不能into,否則會報錯)

insert overwrite local directory '/opt/module/hive/datas/export/student'

select

*from student;

# 2)將查詢的結果格式化匯出到本地(所有的insert語句都會跑mr)

insert overwrite local directory '/opt/module/hive/datas/export/student1'

row format delimited fields

terminated

by'\t'

select

*from student;

# 3)將查詢的結果匯出到hdfs上(沒有local)(是複製,原來的檔案還在)

insert overwrite directory '/user/qinjl/student2'

row format delimited fields

terminated

by'\t'

select

*from student;

注意:insert 匯出,匯出的目錄不用自己提前建立,hive會幫我們自動建立,但是由於是overwrite,所以匯出路徑一定要寫具體,否則很可能會誤刪資料。

hive (

default

)> dfs -get /

user

/hive/warehouse/student/student.txt

/opt/module/hive/datas/export/student3.txt;

[qinjl@hadoop102 hive]$ bin/hive -e 'select * from default.student;'

>>

/opt/module/hive/datas/export/student4.txt;

hive (

default

)> export table

default

.student to

'/user/hive/warehouse/export/student'

;

Hive 匯入匯出資料

將檔案中的資料載入到表中 load data local inpath examples files kv1.txt overwrite into table pokes 載入本地資料,同時給定分割槽資訊 load data local inpath examples files kv2.txt o...

hive資料匯入匯出

hive官方提供兩種匯入資料的方式 1 從表中匯入 insert overwrite table test select from test2 2 從檔案匯入 2.1 從本地檔案匯入 load data local inpath hadoop aa.txt overwrite into table ...

Hive表的匯出與匯入

對於需要跨集群遷移hive表的,只需要遷移表結構的,可以採取從原始集群匯出hive表結構,然後在新集群匯入hive表結構,實現hive元資料的遷移。目錄 匯出所有的hive庫 匯出庫的所有hive表 匯出所有hive表的建表語句 處理一下匯出的建表語句,比如去掉一些表路徑資訊等 匯入hive表 bi...