Join时数据类型不一致导致的倾斜
本篇以hive sql解析器来讨论问题,spark sql 的处理方法类似,大家可自行测试。 在进行join操作时,有mapjoin和hashjoin两个大类。mapjoin需要的是一个大表和一个小表进行join,小表存于内存中,对大表进行遍历,不会产生数据倾斜。 如果是大表join大表,在内存中放不下,便会对两张表join的字段求hash值,然后将hash值相同的数据放入同一个reduce或者同一个spark分区进行处理,这样join条件相同的内容就能放在一起处理了。若得到的某个has