溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hive中使用sql語句需要注意什么問題

發(fā)布時間:2021-07-29 19:20:09 來源:億速云 閱讀:226 作者:chen 欄目:云計算

這篇文章主要講解了“ hive中使用sql語句需要注意什么問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ hive中使用sql語句需要注意什么問題”吧!


最近在熟悉hive,使用hive中的sql語句過程中出現(xiàn)了一些問題。


1,hive中的insert into語句


hive> select * from t_hive2;
OK
16	2	3
61	12	13
41	2	31
17	21	3
71	2	31
1	12	34
11	2	34
Time taken: 0.218 seconds
hive> insert into t_hive2 values(122,34,2);
FAILED: Parse Error: line 1:12 mismatched input 't_hive2' expecting TABLE near 'into' in insert clause


從上面可以看出,hive是不支持insert into 語句的


2,不支持Date和DateTime類型

hive> alter table t_hive2 add columns (time_show Date);
FAILED: Error in semantic analysis: DATE and DATETIME types aren't supported yet. Please use TIMESTAMP instead


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

Hive 創(chuàng)建內部表時,會將數(shù)據(jù)移動到數(shù)據(jù)倉庫指向的路徑;若創(chuàng)建外部表,僅記錄數(shù)據(jù)所在的路徑,不對數(shù)據(jù)的位置做任何改變。
在刪除表的時候,內部表的元數(shù)據(jù)和數(shù)據(jù)會被一起刪除, 而外部表只刪除元數(shù)據(jù),不刪除數(shù)據(jù)。這樣外部表相對來說更加安全些,數(shù)據(jù)組織也更加靈活,方便共享源數(shù)據(jù)。

4,hive中兩個表鏈接時和以前有些不同

hive> select *     
    > from t_hive,t_hive2
    > where t_hive.a=t_hive2.b;
FAILED: Parse Error: line 2:11 mismatched input ',' expecting EOF near 't_hive'

5, 內置函數(shù)查看命令(show functions;desc function 函數(shù)名)
 


hive> desc function when;
OK
There is no documentation for function 'when'
Time taken: 0.095 seconds
hive> desc function rand;
OK
rand([seed]) - Returns a pseudorandom number between 0 and 1
Time taken: 0.078 seconds

6,hive中不支持truncate table 表名的形式存在(也包括 delete from 表名),可通過 hive>dfs -rmr /user/hive/warehouse/表名來清空該表下的數(shù)據(jù),以便保持表元數(shù)據(jù)信息不丟失;或者通過create table 表名 like 表名,也可以。

hive> truncate table t_hive;
FAILED: Parse Error: line 1:0 cannot recognize input near 'truncate' 'table' 't_hive'

hive> delete from table t_hive;
Usage: delete [FILE|JAR|ARCHIVE] <value> [<value>]*

7,hive中不支持 in (子查詢語句),比如: in (select id from 表名) .可以通過內連接或者 半連接 from 表1 left  semi join 表2 on (表1.列名 = 表2.列名),表2只能在on中出現(xiàn),不能在select中引用


8,hive中在不需要全局排序的情況下,寫排序語句時,最好用distribute by 表名.字段名 sort by 表名.字段名 asc | desc 的形式,盡量不用order by形式(只通過一個reduce來完成所有的排序結果)

感謝各位的閱讀,以上就是“ hive中使用sql語句需要注意什么問題”的內容了,經過本文的學習后,相信大家對 hive中使用sql語句需要注意什么問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI