底层hive会先进行类型转换,至于转成string,还是int 得看hive的版本,再求hash值。但如果string类型数据过大,超过范围的数据在转换为bigint时,都会变成相同的结果,然后对这些数据求hash,得出的结果就会一样,这样数据会被分配到同一个分区处理,容易产生数据倾斜。
解决办法:将bigint->string