天天看點

hive中的笛卡爾積

Hive本身是不支援笛卡爾積的,不能用select T1., T2. from table_1, table_2這種文法。但有時候确實需要用到笛卡爾積的時候,可以用下面的文法來實作同樣的效果:

select T1.*, T2.* from

(select * from table1) T1

join

(select * from table2) T2

on 1=1;
           

其中on 1=1是可選的,注意在Hive的Strict模式下不能用這種文法,需要先用set hive.mapred.mode=nonstrict;設為非strict模式就可以用了。

繼續閱讀