本篇總結hive操作的資料的語法語句,這是常用的sql語法,畢竟用的多的還是crud語法
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:表示上傳到指定
建立一張表create table student(id int, name string) row format delimited fields terminated by 『\t』;
載入本地檔案到hiveload data local inpath 『/opt/data2txt』 into table student;
載入hdfs檔案到hive中load data inpath 『/user/muxue/student.txt』 into table student;
載入資料覆蓋表中已有的資料load data inpath 『/user/muxue/student.txt』 overwrite into table student;
通過查詢語句向表中插入資料(insert)
1)建立一張表create table student2(id int, name string) row format delimited fields terminated by 『\t』;
2)基本模式插入資料insert into table student2 values(1,『wangwu』),(2,『zhaoliu』);
3)根據查詢結果插入資料insert overwrite table student2
select id, name from student where id < 1006;
insert into:以追加資料的方式插入到表或分割槽,原有資料不會刪除insert overwrite:會覆蓋表中已存在的資料
注意:insert不支援插入部分字段,並且後邊跟select語句時,select之前不能加as,加了as會報錯,一定要跟下面的as select區分開。
查詢語句中建立表並載入資料(as select)
create external table if not exists student5(id int, name string ) as select id,name from student3 where id >10
建立表時通過location指定載入資料路徑
1)上傳資料到hdfs上hadoop fs -mkdir -p /stu3;
hadoop fs -put stu3.txt /stu3
2)建立表,並指定在hdfs上的位置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;
import資料到指定hive表中
注意:先用export匯出後,再將資料匯入。並且因為export匯出的資料裡面包含了元資料,因此import要匯入的表不可以存在,否則報錯。
import table student2 from
'/user/hive/warehouse/export/student';
insert匯出
將查詢的結果匯出到本地
insert overwrite local directory 『/opt/module/hive/datas/export/student』select * from student;
將查詢的結果格式化匯出到本地
insert overwrite local directory 『/opt/module/hive/datas/export/student1』row format delimited fields terminated by 『\t』
select * from student;
將查詢的結果匯出到hdfs上(沒有local)
insert overwrite directory 『/user/muxue/student2』row format delimited fields terminated by 『\t』
select * from student;
注意:insert 匯出,匯出的目錄不用自己提前建立,hive會幫我們自動建立,但是由於是overwrite,所以匯出路徑一定要寫具體,否則很可能會誤刪資料。這個步驟很重要,切勿大意
hadoop命令匯出到本地
dfs -get /user/hive/warehouse/student/student5.txt/opt/student3.txt;
hive shell 命令匯出
bin/hive -e 『select * from default.student4;』 >/opt/student4.txt;
export匯出到hdfs上
export table default.student to『/user/hive/warehouse/export/student』;
Hive DML中的四個by
使用 order by字句排序 asc是公升序也是預設的,desc是降序實操案例 查詢員工按照工資降序排列select from emp order by sal desc 按照部門和工資公升序排序select from emp order by deptno,sal select from emp...
大資料之Hive DML資料操作 四
1.查詢 查 1 1.全表查詢 hive default select from emp 1 2.選擇特定列查詢 hive default select empno,ename from emp 2.刪除和更改 刪除delete from stu where id 1 修改 update stu s...
數倉 Hive 總結之Hive常用命令以及作用
內部表 create table a1 col1 string,col2 int partitioned by statdate int row format delimited fields terminated by t 外部表 create external table b1 col1 str...