原始需求
解决方案:笛卡尔积 + 排序 |
2)但是如果左表很大,大表和小表做笛卡尔积时,Hive只能用1个reducer来完成笛卡尔积,速度会非常慢;避免笛卡尔积的方法是,给join添加一个join key。
原理很简单:将小表扩充一列join key,并将小表的条目复制数倍,join key 各不相同;将大表扩充一列join key为随机数。
精髓在于复制几倍,最后就有几个reduce来做,而且大表的数据是前面小表扩张key值范围里面随机出
原始需求
解决方案:笛卡尔积 + 排序 |
2)但是如果左表很大,大表和小表做笛卡尔积时,Hive只能用1个reducer来完成笛卡尔积,速度会非常慢;避免笛卡尔积的方法是,给join添加一个join key。
原理很简单:将小表扩充一列join key,并将小表的条目复制数倍,join key 各不相同;将大表扩充一列join key为随机数。
精髓在于复制几倍,最后就有几个reduce来做,而且大表的数据是前面小表扩张key值范围里面随机出