SQL里面通常都會(huì)用Join來連接兩個(gè)表,做復(fù)雜的關(guān)聯(lián)查詢。比如用戶表和訂單表,能通過join得到某個(gè)用戶購買的產(chǎn)品;或者某個(gè)產(chǎn)品被購買的人群....

Hive也支持這樣的操作,而且由于Hive底層運(yùn)行在hadoop上,因此有很多地方可以進(jìn)行優(yōu)化。比如小表到大表的連接操作、小表進(jìn)行緩存、大表進(jìn)行避免緩存等等...

下面就來看看hive里面的連接操作吧!其實(shí)跟SQL還是差不多的...

數(shù)據(jù)準(zhǔn)備:創(chuàng)建數(shù)據(jù)-->創(chuàng)建表-->導(dǎo)入數(shù)據(jù)

首先創(chuàng)建兩個(gè)原始數(shù)據(jù)的文件,這兩個(gè)文件分別有三列,第一列是id、第二列是名稱、第三列是另外一個(gè)表的id。通過第二列可以明顯的看到兩個(gè)表做連接查詢的結(jié)果:

[xingoo@localhost tmp]$ cat aa.txt 
1 a 32 b 43 c 1[xingoo@localhost tmp]$ cat bb.txt 
1 xxx 22 yyy 33 zzz 5

網(wǎng)友評(píng)論