Hive學習筆記(五) DML 資料操作

2021-10-25 02:37:09 字數 4503 閱讀 9585

5.2 資料匯出

5.3 清除表中資料(truncate)

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/atguigu/hive;

載入 hdfs 上資料

hive (default)

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

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

上傳檔案到 hdfs

hive (default)

> dfs -put /opt/module/datas/student.txt /user/atguigu/hive;

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

hive (default)

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

1.建立一張分割槽表

hive (default)

> create table student

(id int, name string) partitioned by (month string) row format delimited fields terminated by '\t'

;

2.基本插入資料

hive (default)

> insert into table student partition

(month=

'201709'

)values(1

,'wangwu'

);

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

hive (default)

> insert overwrite table student partition

(month=

'201708'

) select id, name from student where month=

'201709'

;

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'

;

詳見 4.5.1 章建立表

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

create table if not exists student3 as select id, name from student;
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'

;

2.上傳資料到 hdfs 上

hive (default)

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

/user/hive/warehouse/student5;

3.查詢資料

hive (default)

> select * from student5;

注意:先用 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/atguigu/student2'

row format delimited fields terminated by '\t'

select * from student;

hive (default)

> dfs -get

/user/hive/warehouse/student/month=

201709

/000000_0

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

5.2.3 hive shell 命令匯出

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

[atguigu@hadoop102 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'

;

後續課程專門講。

注意

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

hive (default)

> truncate table student;

Oracle基操筆記(五) DML

dml data manipulationlanguage 顧名思義,運算元據的語言,亦可理解為modify 更改 公式insert into tb name col1,col2,values v1,v2,insert into tb name values v1,v2,insert into tb...

Hive學習(六)DML資料操作

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

Hive學習筆記五

目錄 二 資料匯出 三 清除表中資料 truncate 1 向表中裝載資料 load hive load data local inpath opt module datas student.txt overwrite into table student partition partcol1 va...