1. 笛卡爾積
1. 觸發笛卡爾積條件
1. join 時,沒有on條件 或 on 條件無效
2. 為什么要盡量避免笛卡爾積?
hive 只會使用一個reduce來完成笛卡爾積,當數據量過大時,容易內存不足
3. 如果必須使用笛卡爾積時,可以使用MapJoin,關聯操作在Map端完成
4. 測試
-- 1. 觸發笛卡爾積時,只會生成一個reduce set mapreduce.job.reduces=2; set mapred.job.name='one'; set hive.auto.convert.join=false; select t1.*,t2.* from maptab as t1 inner join maptab as t2 -- on t1.name = t2.name ; Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1