我想把两张桌子连接在一起。其中之一有非常严重的数据倾斜。这导致我的火花作业不能并行运行,因为大部分工作都是在一个分区上完成的。
我听过,读过,并试图实施盐碱化我的密钥,以增加分发。12:45秒的https://www.youtube.com/watch?v=WyfHUNnMutg正是我想要做的。
如有任何帮助或建议,将不胜感激。谢谢!
发布于 2016-08-15 19:58:22
是的,您应该在较大的表上使用盐渍键(通过随机化),然后将较小的键/笛卡儿键复制到新的盐渍表中:
以下是一些建议:
Tresata斜加入RDD https://github.com/tresata/spark-skewjoin python斜连接:https://datarus.wordpress.com/2015/05/04/fighting-the-skew-in-spark/
tresata库如下所示:
import com.tresata.spark.skewjoin.Dsl._ // for the implicits
// skewjoin() method pulled in by the implicits
rdd1.skewJoin(rdd2, defaultPartitioner(rdd1, rdd2),
DefaultSkewReplication(1)).sortByKey(true).collect.toLishttps://stackoverflow.com/questions/38960599
复制相似问题