第5章 DML資料操作 hive筆記

2021-10-10 18:46:54 字數 4583 閱讀 1631

資料匯出

1.語法

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

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

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

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

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

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

(6)student:表示具體的表

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

2.實操案例

(0)建立一張表

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

(1)載入本地檔案到hive

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

(2)載入hdfs檔案到hive中

上傳檔案到hdfs

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

載入hdfs上資料

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

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

上傳檔案到hdfs

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

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

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

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

1.建立一張分割槽表

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

2.基本插入資料(insert走mapreduce)

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

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

hive (default)>

insert overwrite table student partition

(month=

'201708'

) select id, name from student where month=

'201709'

;

insert into:以追加資料的方式插入到表或分割槽,原有資料不會刪除

insert overwrite:會覆蓋表或分割槽中已存在的資料

注意:insert不支援插入部分字段

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'

;

詳見 建立表。

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

create table if not exists student3

as select id, name from student;

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

1.上傳資料到hdfs上

hive (

default

)> dfs -mkdir /student;

hive (

default

)> dfs -put /opt/module/datas/student.txt /student;

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

hive (

default

)> create external table if not exists student5

( id int

, name string

)row format delimited fields terminated by '\t'

location '/student;

3.查詢資料

hive (default)>select * from student5;

5.1.5 import資料到指定hive表中

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

hive (default)>

import table student2 partition

(month=

'201709'

) from

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

;

1.將查詢的結果匯出到本地

hive (default)>

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

select * from student;

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

hive(default)>

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

row format delimited fields terminated by '\t' select * from student;

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

hive (

default

)> insert overwrite directory '/user/cris/student2'

row format delimited fields terminated by '\t'

select * from student;

5.2.2 hadoop命令匯出到本地

hive (

default

)> dfs -get /user/hive/warehouse/student/month=

201709

/000000_0

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

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

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

>

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

5.2.4 export匯出到hdfs上

(defahiveult)

> export table default

.student to

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

;

export和import主要用於兩個hadoop平台集群之間hive表遷移。

5.2.5 sqoop匯出

後續課程專門講。

5.3 清除表中資料(truncate)

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

hive (default)>truncate table student;

大資料技術之Hive第5章 DML資料操作

1 語法 hive load data local inpath opt module datas student.txt overwrite into table student partition partcol1 val1,1 load data 表示載入資料 2 local 表示從本地載入資...

Hive中DML資料操作

1.資料匯入 1 向表中裝載資料 load 語法 load data 表示載入資料 local 表示從本地載入資料到hive表 否則從hdfs載入資料到hive表 inpath 表示載入資料的路徑 into table 表示載入到哪張表 student 表示具體的表 overwrite 表示覆蓋表中...

Hive學習(六)DML資料操作

目錄 資料匯入 裝載資料 load 通過查詢語句向表中插入資料 insert 查詢語句中建立表並載入資料 as select 資料匯出 清除表中資料 語法 load data local inpath file path overwrite into table tb name partition ...