hive中的笛卡爾積

2021-08-26 02:41:52 字數 329 閱讀 7780

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

hive中的笛卡爾積

hive本身是不支援笛卡爾積的,不能用select t1.t2.from table 1,table 2這種語法。但有時候確實需要用到笛卡爾積的時候,可以用下面的語法來實現同樣的效果 select t1.t2.from select from table1 t1 join select from t...

hive中笛卡爾積的優化

由於乙個業務,必須要進行笛卡爾積,但是速度太慢了,left join時左表大概4萬條資料,右表大概 3000多條資料,這樣大概就是一億多條資料,這在大資料領域其實不算很大的資料量,但是hive中跑的特別慢。因為hive對笛卡爾積支援的不是很好,由於是全域性的操作,所以只能在乙個reduce中執行,導...

hive笛卡爾積 排序

原始需求 解決方案 笛卡爾積 排序 1 hive本身不支援笛卡爾積,不能使用select t1.t2.from table 1,table 2,可以使用 select t1.t2.from t1 join t2 on 1 1 在hive的strict模式下不能用這種語法,需要先用set hive.m...