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模式就可以用了。