hive資料操作

2021-09-07 10:54:04 字數 1864 閱讀 4823

vi tb_hive.txt

12      34       56

7       12      13

41      2       31

17      21      3

71      2       31

1       12      34

11      2       34

[root@namenode-82 hive_w]# hive shell

建表結構

hive>create table tb_hive (a int, b int, c int) row format delimited fields terminated by '\t';

匯入檔案

hive>load data local inpath '/work/wangliqin/hive_w/tb_hive.txt' overwrite into table tb_hive ;

copying data from file:/work/wangliqin/hive_w/tb_hive.txt

copying file: file:/work/wangliqin/hive_w/tb_hive.txt

loading data to table default.tb_hive

deleted hdfs://namenode-82:54310/user/hive/warehouse/tb_hive

oktime taken: 0.511 seconds

檢視表hive> show tables;        

okt_hive

time taken: 0.142 seconds

刪除表hive> drop table t_hive;  

oktime taken: 2.356 seconds         

[root@namenode-82 hive_w]#

hadoop fs -cat /user/hive/warehouse/tb_hive/tb_hive.txt

16      2       3

61      12      13

41      2       31

17      21      3

71      2       31

1       12      34

11      2       34 

1。hive不支援insert into語句、不支援date和datetime型別、truncate table t_hive(清空語句)、delete from table t_hive(刪除語句)、不支援 in (子查詢語句);

2。hive 清空資料可通過 hive>dfs -rmr /user/hive/warehouse/表名來清空該錶下的資料,以便保持表元資料資訊不丟失;或者通過create table 表名 like 表名,也能夠。

3。hive連表查詢,能夠通過內連線或者 半連線 from 表1 left semi join 表2 on (表1.列名 = 表2.列名)。表2僅僅能在on**現,不能在select中引用

4,hive中在不須要全域性排序的情況下,寫排序語句時,最好用distribute by 表名.欄位名 sort by表名.欄位名 asc | desc 的形式,盡量不用order by形式(僅僅通過乙個reduce來完畢全部的排序結果)

5,hive的表分為外部表和內部表

hive 建立內部表時,會將資料移動到資料倉儲指向的路徑。若建立外部表。僅記錄資料所在的路徑。不正確資料的位置做不論什麼改變。

在刪除表的時候,內部表的元資料和資料會被一起刪除, 而外部表僅僅刪除元資料,不刪除資料。

這樣外部表相對來說更加安全些。資料組織也更加靈活,方便共享源資料。

hive資料操作

select from employees 在這種情況下可以簡單的讀取employees對應的儲存目錄下的檔案,然後輸出到格式化後的內容到控制台 對於where語句中的過濾條件只是分割槽字段這種情況 無論是否使用limit語句限制輸出記錄數 也無需mapreduce過程的 select from e...

hive 資料操作

日常工作中,經常涉及到將本地檔案寫入hive表,已供查詢計算,或將hive表的資料匯出為本地檔案。1 第一步 建立hive 表 create table if not exists user.table user user id int act time string partitioned by ...

Hive之 資料操作

基本語法 select all distinct select expr,select expr,from tablename where where condition 1 hive命令列執行select from lyz 2 linux命令列執行hive e select from lyz hi...