Hive 之 DML 資料操作語言應用(增刪改)

2021-10-08 17:57:04 字數 4681 閱讀 5832

2 、資料匯出

1.1 向表中裝載資料(load)

1.1.1 語法

hive>

load

data

[local

] inpath '資料的path'

[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:表示上傳到指定分割槽

1.1.2 實操案例

(0)建立一張表

hive (

default

)>

create

table student(id int

, name string)

row format delimited fields

terminated

by'\t'

;

(1)載入本地檔案到hive

hive (

default

)>

load

data

local inpath '/opt/module/hive/datas/student.txt'

into

table student;

(2)載入 hdfs 檔案到 hive 中

hive (

default

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

user

/xiaoxq;

hive (

default

)>

load

data inpath '/user/xiaoxq/student.txt'

into

table student;

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

hive (

default

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

user

/xiaoxq;

hive (

default

)>

load

data inpath '/user/xiaoxq/student.txt' overwrite into

table student;

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

1.2.1 建立一張表

hive (

default

)>

create

table student2(id int

, name string)

row format delimited fields

terminated

by'\t'

;

1.2.2 基本模式插入資料

hive (

default

)>

insert

into

table student2 values(1

,'wangwu'),

(2,'zhaoliu'

);

1.2.3 根據查詢結果插入資料

hive (

default

)>

insert overwrite table student2

select id, name from student where id <

1006

;

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

table

ifnot

exists student3

asselect id, name from student;

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

1.4.1 上傳資料到hdfs上

[xiaoxq@hadoop105 datas]$  hadoop fs -mkdir -p /stu3;

[xiaoxq@hadoop105 datas]$ hadoop fs -put stu3.txt /stu3

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

hive (

default

)>

create external table

ifnot

exists student5(

id int

, name string

)row format delimited fields

terminated

by'\t'

location '/student'

;

1.4.3 查詢資料

hive (

default

)>

select

*from student5;

1.5 import 資料到指定 hive 表中
hive (

default

)>

import

table student2 from

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

;

2.1 insert 匯出

2.1.1 將查詢的結果匯出到本地(只能用overwrite 不能用into,語法規定)

hive (

default

)>

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

select

*from student;

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

hive(

default

)>

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

row format delimited fields

terminated

by'\t'

select

*from student;

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

hive (

default

)>

insert overwrite directory '/user/xiqoxq/student2'

row format delimited fields

terminated

by'\t'

select

*from student;

2.2 hadoop 命令匯出到本地
hive (

default

)> dfs -get /

user

/hive/warehouse/student/student.txt

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

2.3 hive shell 命令匯出
[xiaoxq@hadoop105 hive-3.1.2]$ bin/hive -e 'select * from default.student;' >

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

2.4 export 匯出到 hdfs 上
hive (

default

)> export table

default

.student to

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

;

Hive中DML資料操作

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

DML 資料操作語言

本小白日常oracle學習總結,若有錯誤望海涵,並希望大神能指點迷津 開發中使用的部分 主要指資料庫的查詢與更新 例如 select,update,查詢該使用者下的所有表 select from tab查詢某乙個表的表結構 desc 表名 select子句中可以直接使用四則運算 select子句對應...

DML 資料操作語言

dml的具體內容 1.插入資料 名字sql語句 注意說明 完全插入 insert into 表名 列名1,列名2,values 列值1,列值2,在表名後給出要插入的列名,在values後面給出列值,值得順序和個數必須與前面指定的列對應。不完全插入 insert into 表名 列名1 values ...