最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

鎖屏面試題百日百刷-Hive篇(六)

2023-02-28 21:27 作者:zjlala96  | 我要投稿

? ?鎖屏面試題百日百刷,每個(gè)工作日?qǐng)?jiān)持更新面試題。鎖屏面試題app、小程序現(xiàn)已上線,官網(wǎng)地址:https://www.demosoftware.cn。已收錄了每日更新的面試題的所有內(nèi)容,還包含特色的解鎖屏幕復(fù)習(xí)面試題、每日編程題目郵件推送等功能。讓你在面試中先人一步!接下來(lái)的是今日的面試題:

1.Hive join查詢(xún)的時(shí)候on和where有什么區(qū)別

左右關(guān)聯(lián)時(shí):

? 條件不為主表?xiàng)l件時(shí),放在on和where后面一樣

? 條件為主表?xiàng)l件時(shí),放在on后面,結(jié)果為主表全量,放在where后面為主表?xiàng)l件篩選過(guò)后的全量。

-- 1. select * from a left join b on a.id=b.id and a.dt=20181115; -- 2.select * from a left join b on a.id=b.id and b.dt=20181115; -- 3.select * from a join b on a.id=b.id and a.dt=20181115; -- 4.select * from a left join b on a.id=b.id where?a.dt=20181115; -- sql1: 如果是left join 在on 上寫(xiě)主表a的條件不會(huì)生效,全表掃描。

-- sql2: 如果是left join 在 on 上寫(xiě)副表b的條件會(huì)生效,但是語(yǔ)義與寫(xiě)到where條件不同。

-- sql3: 如果是inner join 在on 上寫(xiě)主表a,副表b的條件都會(huì)生效。

-- sql4: 建議這么寫(xiě),大家寫(xiě)sql 大部分的語(yǔ)義都是先過(guò)濾數(shù)據(jù)然后再join,所以在不了解 join on +條件的情況下,條件盡量別寫(xiě)到on后

2.Hive里面的left join是怎么執(zhí)行的?

不考慮where條件下,left join會(huì)把左表所有數(shù)據(jù)查詢(xún)出來(lái),on及其后面的條件僅僅會(huì)影響右表的數(shù)據(jù)(符合就顯示,不符合全部為null)。

在join階段。where字句的條件都不會(huì)被使用,僅在join階段完成以后,where子句條件才會(huì)被使用,它將從匹配階段產(chǎn)生的數(shù)據(jù)中檢索過(guò)濾。

所以左連接關(guān)注的是左邊的主表數(shù)據(jù),不應(yīng)該把on后面的從表中的條件加到where后,這樣會(huì)影響原有主表的數(shù)據(jù)。

where后面:是先連接生成臨時(shí)查詢(xún)結(jié)果,然后再篩選on后面:先根據(jù)條件過(guò)濾篩選,再連接生成臨時(shí)查詢(xún)結(jié)果。

對(duì)于條件在on加個(gè)and還是用子查詢(xún)。查詢(xún)結(jié)果是一模一樣的,至于如何使用這個(gè)需要分情況,用子查詢(xún)的話會(huì)多一個(gè)maptask,但是如果利用這個(gè)子查詢(xún)能過(guò)濾很多數(shù)據(jù)的話,用子查詢(xún)還是比較建議的,因?yàn)椴粫?huì)加載太多的數(shù)據(jù)到內(nèi)存中,如果過(guò)濾數(shù)據(jù)不多的情況下,建議用on后面加and條件。

3.Hive內(nèi)部表,外部表,分區(qū)表

1.內(nèi)部表

? 與數(shù)據(jù)庫(kù)中的Table在概念上是類(lèi)似的。

? 每一個(gè)Table在Hive中都有一個(gè)相應(yīng)的目錄存儲(chǔ)數(shù)據(jù)。

? 所有的Table數(shù)據(jù)(不包括 External Table)都保存在這個(gè)目錄中。

? 刪除表時(shí),元數(shù)據(jù)與數(shù)據(jù)都會(huì)被刪除。

2.外部表

? 指向已經(jīng)在HDFS中存在的數(shù)據(jù),可以創(chuàng)建Partition。

? 它和內(nèi)部表在元數(shù)據(jù)的組織上是相同的,而實(shí)際數(shù)據(jù)的存儲(chǔ)則有較大的差異。

? 外部表只有一個(gè)過(guò)程,加載數(shù)據(jù)和創(chuàng)建表同時(shí)完成,并不會(huì)移動(dòng)到數(shù)據(jù)庫(kù)目錄中,只是與外部數(shù)據(jù)建立一個(gè)連接,當(dāng)刪除一個(gè)外部表時(shí),僅刪除連接和元數(shù)據(jù)。

3.分區(qū)表

? Partition 對(duì)應(yīng)于數(shù)據(jù)庫(kù)的Partition列的密集索引。

? 在Hive中,表中的一個(gè)Partition對(duì)應(yīng)于表下的一個(gè)目錄,所有的Partition的數(shù)據(jù)都存儲(chǔ)在對(duì)應(yīng)的目錄中。

鎖屏面試題百日百刷-Hive篇(六)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
宁陕县| 从江县| 梅河口市| 久治县| 衡东县| 丽水市| 梁平县| 南溪县| 手游| 永州市| 肥城市| 牙克石市| 黑龙江省| 谢通门县| 昭平县| 阳谷县| 祥云县| 普安县| 麻江县| 南充市| 宜春市| 合川市| 如东县| 太康县| 太仆寺旗| 商洛市| 板桥市| 黄平县| 六安市| 和政县| 封丘县| 连州市| 静海县| 敦煌市| 遵化市| 中卫市| 喀喇沁旗| 大丰市| 禄劝| 娄底市| 葵青区|