Hive 資料匯入匯出和清空

2021-08-25 22:33:17 字數 3849 閱讀 5865

資料匯入

1.向表中裝載資料(load)

1.1 語法

hive> load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into table student [partition (partcol1=val1,…)];

① load data:表示載入資料

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

③ inpath:表示載入資料的路徑

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

⑤ into table:表示載入到哪張表

⑥ student:表示具體的表

⑦ partition:表示上傳到指定分割槽

1.2 實操案例

建立一張表

hive (default)> create table student(id string, name string) row format delimited fields terminated by '\t';

① 載入本地檔案到hive

hive (default)> load data local inpath '/opt/module/datas/student.txt' into table default.student;

② 載入hdfs檔案到hive中

上傳檔案到hdfs

hive (default)> dfs -put /opt/module/datas/student.txt /user/hive;

載入hdfs上資料

hive (default)> load data inpath '/user/hive/student.txt' into table default.student;

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

上傳檔案到hdfs

hive (default)> dfs -put /opt/module/datas/student.txt /user/hive;

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

hive (default)> load data inpath '/user/hive/student.txt' overwrite into table default.student;

2.通過查詢語句向表中插入資料(insert)

2.1 建立一張分割槽表

hive (default)> create table student(id int, name string) partitioned by (month string) row format delimited fields terminated by '\t';

2.2 基本插入資料

hive (default)> insert into table  student partition(month='201709') values(1,'wangwu');

2.3 基本模式插入(根據單張表查詢結果)

hive (default)> insert overwrite table student partition(month='201708') select id, name from student where month='201709';

2.4 多插入模式(根據多張表查詢結果)

hive (default)> from student

insert overwrite table student partition(month='201707')

select id, name where month='201709'

insert overwrite table student partition(month='201706')

select id, name where month='201709』;

3.查詢語句中建立表並載入資料(as select)

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

create table if not exists student3 as select id, name from student;

4.建立表時通過location指定載入資料路徑

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

hive (default)> create table if not exists student5(

id int, name string

row format delimited fields terminated by '\t'

location '/user/hive/warehouse/student5';

4.2 上傳資料到hdfs上

hive (default)> dfs -put /opt/module/datas/student.txt /user/hive/warehouse/student5;

4.3 查詢資料

hive (default)> select * from student5;

5.import資料到指定hive表中

注意:先用export匯出後,再將資料匯入。

hive (default)> export table student to '/opt/module/datas/student_export/';

hive (default)> import table student4 from '/opt/module/datas/student_export/';

注意:import目標表必須為不存在的表。(補:資料遷移時候用到:import是包含元資料資訊,load data不包含元資料資訊,import匯入的檔案必須是經export的檔案)。

資料匯出

1.insert匯出

1.1 將查詢的結果匯出到本地

hive (default)> insert overwrite local directory '/opt/module/datas/export/student』 select * from student;

1.2 將查詢的結果格式化匯出到本地

hive(default)>insert overwrite local directory '/opt/module/datas/export/student1』 row format delimited fields terminated by '\t'  select * from student;

1.3 將查詢的結果匯出到hdfs上(沒有local)

hive (default)> insert overwrite directory '/user/student2』 row format delimited fields terminated by '\t' select * from student;

2.hadoop命令匯出到本地

hive (default)> dfs -get /user/hive/warehouse/student/month=201709/000000_0 /opt/module/datas/export/student3.txt;

3.hive shell 命令匯出

基本語法:(hive -f/-e 執行語句或者指令碼 > file)

[luomk@hadoop102 hive]$ bin/hive -e 'select * from default.student;』 > /opt/module/datas/export/student4.txt;

4.export匯出到hdfs上

(defahiveult)>export table default.student to '/user/hive/warehouse/export/student';

清空資料

hive (default)> truncate table student;

注意:truncate只能刪除管理表,不能刪除外部表中資料

Hive資料匯入和匯出

1.將select的結果放到乙個的的 中 首先要用create table建立新的 insert overwrite table test select uid,name from test2 2.將select的結果放到本地檔案系統中 insert overwrite local director...

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 ...