日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

delete hive_「挑战30万年薪」 Hive语句详解之从SQL到HQL的应转习惯

發布時間:2025/3/19 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 delete hive_「挑战30万年薪」 Hive语句详解之从SQL到HQL的应转习惯 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hive不支持等值連接

SQL中對兩表內聯可以寫成:

select * from dual a,dual b where a.key=b.key;

Hive中應為:

select * from dual a join dual b on a.key=b.key;

而不是傳統的格式:

SELECT t1.al as c1,t2.b1 as c2FROM t1,t2 WHERE t1.a2=t2.b2

分號字符:

分號是SQL語句結束標記,在HiveQL中也是,但是在HiveQL中,對分號的識別沒有那么智慧,例如:

select concat(key,concat(";",key))from dual;

但HiveQL在解析語句時提示:

FAILED:Parse Error:line O:-1 mismatched input ''expecting )in function specification

解決的辦法:

使用分號的八進制的ASCII碼進行轉義,那么上述語句應寫成:select concat(key,concat("073',key))from dual;

IS [INOT] NULL

SQL中null代表空值,值得警惕的是,在HiveQL中String類型的字段若是空(empty)字符串,即長度為0,那么對它進行IS NULL的判斷結果是False.

Hive不支持將數據插入現有的表或分區中,僅支持覆蓋重寫整個表,示例如下:

INSERT OVERWRITE TABLE t1 SELECT * FROM t2;

hive不支持INSERTINTO,UPDATE,DELETE操作

這樣的話,就不要很復雜的鎖機制來讀寫數據。

INSERT INTO syntax is only available starting in version 0.8。

解釋:

INSERT INTO就是在表或分區中追加數據。

hive支持嵌入mapreduce程序,來處理復雜的邏輯如:

FROM(

MAP doctext USING ‘python wc_mapper.py'AS(word,cnt)

FROM docs

CLUSTER BY word

)a

REDUCE word,cnt USING 'python wc_reduce.py';

解釋:

doctext:是輸入

word,cnt:是map程序的輸出

CLUSTER BY:將wordhash后,又作為reduce程序的輸入

map程序reduce程序可以單獨使用,如:

FROM(

FROM session_table

SELECT sessionid,tstamp,data

DISTRIBUTE BY sessionid SORT BY tstamp

)a

REDUCE sessionid,tstamp,data USING 'session_reducer.sh';

解釋:

DISTRIBUTE BV:用于給reduce程序分配行數據

hive支持將轉換后的數據直接寫入不同的表,還能寫入分區、hdfs和本地目錄。

這樣能免除多次掃描輸入表的消費。

如果覺得對你有所幫助。記得收藏和關注呦!(每日更新各種大數據框架)

如需轉載請注明出處(創作不易請見諒)

和巨嬰程序猿一起成長。讓自己變得更優秀

想了解更多精彩內容,快來關注跟著巨嬰去逆襲

我最近一直在思考(大數據通俗講解)的問題,你的看法是什么呢?關注我快說出來一起交流一下吧~

總結

以上是生活随笔為你收集整理的delete hive_「挑战30万年薪」 Hive语句详解之从SQL到HQL的应转习惯的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。