介绍
数据倾斜是统计术语,反应在数据集中的值分布情况。当数据是高度倾斜时,表示一些列值拥有更多的行,而一些拥有更少的行。值没有平均分配,这样在分布式系统中会造成性能问题。
join多张拥有数据倾斜问题的表
在Spark中join多张拥有数据倾斜问题的表,可能会出现卡在最后的stage(399/400),当超过一定时间后,会报Caused by: org.apache.spark.shuffle.FetchFailedException: Too large frame: 7498008366错误。
例子如下:
-- Sample query where we are joining on highly null columns
select *
from order_tbl orders left join customer_tbl customer
on orders.customer_id = customer.customer_id
left join delivery_tbl delivery
on orders.delivery_id = delivery.delivery_id
表统计如下: