hive常見的DML操作

2021-08-11 01:24:37 字數 1866 閱讀 3554

一 load資料

load data [local] inpath 'filepath' [overwrite]into table tablename [partition (partcol1=val1, partcol2=

val2 ...)]

filepath: 如果是local則是本地檔案,否則就是hdfs檔案

overwrite:如果該錶有資料是否覆蓋

partition: 一般適用於分割槽表根據檔案載入資料,直接載入到對應的分割槽裡面

二 insert 資料

2.1 單錶覆蓋插入資料

insert overw table t [partition(col1=val1,…..)]

[if not exists] select 子句

2.2 單錶追加插入資料

insert into table t [partition(col1=val1,…..)]

[if not exists] select 子句

2.3 單錶覆蓋插入資料且分割槽動態

insert overwrite table t partition (col1,col2,…..)

select * from 表

它會根據paritition的個數然後從查詢中取出後n個字段,填充到分割槽中

也可以將全部子段查詢出來,然後再在最後處理分割槽字段,比如

insert overwrite able t partition (col1,col2)

select field1,field2,field3,……col1,col2 from 表

2.4單錶追加插入資料且分割槽動態

insert into table t partition (col1,col2,…..)

select * from 表

2.5 multi inserts

from from_statement

insert overwrite table table1 [partition(col1=val1,

col2=val2)[if not exists]] select 語句

insert into table table2 [partition(col1,col2)[if not exists]] select 語句

insert overwrite table t table2 [partition(col1,col2)[if not exists]] select 語句

可同時向table1和table2插入資料,只不過如果一張表insert into的時候,那麼你不能再insert to這張表,但是insert overwrite就可以

三 根據查詢將結果寫入檔案系統

3.1 將結果寫入本地檔案

insert overwrite local directory '/opt/data/'select * from movie;

3.2 將結果寫入hdfs檔案

insert overwrite directory'hdfs://hdfs-cluster/user/hadoop

/output' select * from movie;

四 根據sql插入資料到表裡

比如你根據其他分割槽表將某個分割槽的資料查詢出來,然後插入到當前表。

create table students (name varchar(64), age int,gpa decimal(3, 2))

clusteredby (age) into 2 buckets stored as orc;

insert into table students

values('fred flintstone', 35, 1.28), ('barney rubble', 32, 2.32);

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

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

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