資料匯出
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...