linux Hive常用命令總結

2021-10-01 23:01:51 字數 3801 閱讀 1444

寫在開頭:hive是基於hadoop的乙個資料倉儲工具,用來進行資料提取、轉化、載入,這是一種可以儲存、查詢和分析儲存在hadoop中的大規模資料的機制。hive資料倉儲工具能將結構化的資料檔案對映為一張資料庫表,並提供sql查詢功能,能將sql語句轉變成mapreduce任務來執行。–**某度詞條。

下面整理了幾個常用的hive操作命令。

1.建立庫

>create database abc;

>create database if not exists abc;

2.檢視庫

>show database;

>show database like 'h_*'

;3.建立庫後修改其儲存路徑

>create database abc;

>location "******"

;4.新增庫的描述

>create database abc;

>comment "******"

;5.檢視庫的描述及其位置

>describe database abc;

6.使用庫

>use abc;

7.設定顯示當前正在使用庫

>set hive.cli.print.current.db=true;

8.刪除資料庫

>drop database if exists abc;

9.先刪除庫中的表,再刪除庫

>drop database if exists abc cascade;

10.建立表

>create table if not exists mydb.ttb

( name string comment 'name ss',

salary int comment 'name ss',

sub float comment 'name ss',

id arraycomment 'name ss',

name mapcomment 'name ss',

) comment 'fdfdfd'

location 'fdf/fdfd/fdfd'

11.檢視乙個庫下的所有表和檢視

>show tables;

>show tables in mydb;

>show tables 'huu_*'

;12.檢視乙個表的結構

>describe extended mydb.tb;

>describe mydb.tb.salary;

13.建立外部表接入外部資料,特定目錄下所有檔案-特定的字段分割符

>create external table if not exists stocks

( exchange string,

symbol stirng,

ymb string,

volum int

) row format delimited fields terminated by ','

location '/data/stocks/'

14.刪除表

>drop table if exists tb1;

15.重新命名表

>alter table mess rename to message;

16.表增加列

>alter table log add columns

( session_id int comment "fdfd"

)17.修改列

18.刪除列

複雜資料型別:array,map,struct.struct類似於map

19.查詢乙個array型別的字段中的第二條資料。

>select name,sub[1] from empl;

20.使用正規表示式來指定查詢的字段,以price為字首的字段

>select id,『price.*』 from empl;

21.設定查詢盡可能的使用本地模式而並非mapreduce模式,一般情況下的複雜查詢會使用mapreduce操作。

>set hive.exec.mode.local.auto=true;

22.不能在where條件中直接使用列的別名進行操作,可以進行巢狀查詢替代。

23.hive中進行查詢輸入的小數實際上在執行時是double型別的資料格式,即0.2可能為0.20001或0.200000001,進行一些數值比較時需注意。-----ieee規標準進行浮點性編碼的資料皆有此類問題。

//處理兩種方式

a.定義該字段的時候設定為double型別,最後幾位double型別何double型別的比較-不存在轉換。----增加查詢記憶體消耗

b.進行手動的函式式條件轉換--cast

(0.2 as float),--最後即為float型別與float型別資料比較。

-----與錢相關字段避免使用float型別定義

24.查詢語句rlike可以接正規表示式操作。

>select id,name,book where name rlike '(*.de)|(*.ff)'

;25.靈活使用笛卡爾積join查詢---但會耗費大量時間。

26.將查詢結果匯入到乙個新錶中

>insert overwrite table tbsa select ****;

27.掃瞄一次表-將結果裝入兩張新錶中

>from tb_his

>insert overwrite tb_new1 select *****

>insert overwrite tb_new2 select *****

28.建立檢視

>create view viw1 as select *****;

>create view if not exists shipe11 comment 'descc' as select ****;

29.將檢視複製到表

>create table tb1 like vie1;

30.刪除檢視

>drop view if exists view1;

32.重建索引--對特定分割槽的乙個表進行索引建立--不指定分割槽則為全部分割槽

>alter index empl_index on table tb1 partition

(country='us'

) rebuild;

33.顯示乙個表的索引資訊--index/indexs

>show formatted indexs on tab1;

34.刪除索引

>drop index if exists empl_index on table tb1;

35.顯示所有函式

>show functions;

36.檢視函式使用說明

>describe function concat;

37.建立表並對映資料檔案

>create table peop_info

(a string,

b string,

c string

) row format serde

'org.apache.hadoop.hive.serde2.lazy.lazy******serde'

with serdeproperties

("field.delim"='\t',"serialization.encoding"='utf-8'

)stored as textfile;

load data local inpath '/home/demo/a.txt' overwrite into table peop_info;

常用命令總結

一,vim常用命令 set nu 顯示行號 dd 刪除當前行 yy 拷貝當前行 p 粘接內容 行號gg 定位改行到行號 g 切換到檔案尾部 gg 切換到檔案頭部 二,linux常用命令 全路徑cp a 拷貝目錄 a dpr cat n 行號 檢視檔案內容前面10行 rename 改名 rm rf 刪...

常用命令總結

1 lsof i 埠號 2 netstat tunlp grep 埠號 1.徹底置空,也就是ls檔案的大小為0,檔案裡面什麼都沒有 1 filename 2 true filename 3 cat dev null filename 4 filename 2.置空檔案,但是檔案中有空行,ls檔案的大...

mysql常用命令總結 mySql常用命令總結

總結一下自己常用的mysql資料庫的常用命令 mysql u root p 進入mysql bin目錄後執行,回車後輸入密碼連線。資料庫操作 1 create database dbname 建立資料庫,資料庫名為dbname 2 create database todo default chara...